请高手帮看看 为什么程序会死掉~ 并且数据写不进文本
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace WindowsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string x;
x = System.Windows.Forms.Application.StartupPath;
if(false == System.IO.File.Exists(x + "/map/0.map"))
{
MessageBox.Show("请安装在正确目录");
}
FileStream ftp = new FileStream("ftp.ini", FileMode.Create, FileAccess.Write);
StreamWriter sw = new StreamWriter(ftp);
sw.WriteLine(x + "[Server]", "Servercount", "1");
sw.WriteLine(x + "server1caption", textBox1.Text);
sw.WriteLine(x + "server1name", textBox1.Text);
sw.Flush();
FileStream mir = new FileStream("mir.ini", FileMode.Create, FileAccess.Write);
StreamWriter sw1 = new StreamWriter(mir);
sw1.WriteLine("[setup]", "fontname", FontStyle.Bold);
sw1.WriteLine("SeverAddr", textBox2.Text);
sw1.Flush();
ftp.Close();
mir.Close();
sw.Close();
sw1.Close();
}
}
}
相关推荐
自己写的vb四舍六入奇进偶不进的excle中的函数
自己写的vb四舍六入奇进偶不进的函数,excle函数,已经测试通过,并应用到实际的项目中了,可放心使用
自己写的sql server四舍六入奇进偶不进的函数
自己写的sql server四舍六入奇进偶不进的函数,实现了四舍六入五单进的修约规则,已经测试通过,并应用到项目中了!
ET199 复制狗写狗程序+狗数据+写狗程序+写狗视频教程
ET199 复制狗写狗程序+狗数据+写狗程序+写狗视频教程
程序员为什么不写单元测试?[1]
程序员为什么不写单元测试?[1]单元测试工具赛门铁克误杀门事件在一片争议声中落下了帷幕,但是它身后隐蔽的问题还远未结束,诺顿误杀彰显测试价值的回归,同时也向广大的程序员们敲响了警钟,不做单元测试的程序员在未来发展中绝对无路可走,以下是笔者的 程序员为什么不写单元测试?[1] 单元测试工具 赛门铁克误杀门事件在一片争议声中落下了帷幕,但是它身后隐蔽的问题还远未结束,诺顿误杀彰显测试价值的回归,同时也向广大的程序员们敲响了警钟,不做单元测试的程序员在未来发展中绝对无路可走,以下是笔者的一些分析。 一、为了单元测试而写单元测试 最近笔者曾经做过一次“程序员在项目开发中编写单元测试的情况”的
线程超时死掉
解决线程的死掉问题和超时问题特别好使,在Java中,如果需要设定代码执行的最长时间,即超时,可以用Java线程池ExecutorService类配合Future接口来实现。 Future接口是Java标准API的一部分,在java.util.concurrent包中。Future接口是Java线程Future模式的实 现,可以来进行异步计算。 Future模式可以这样来描述:我有一个任务,提交给了Future,Future替我完成这个任务。期间我自己可以去做任何想做的事情。一段时 间之后,我就便可以从Future那儿取出结果。就相当于下了一张订货单,一段时间后可以拿着提订单来提货,这期间可以干别的任何事情。其中Future 接口就是订货单,真正处理订单的是Executor类,它根据Future接口的要求来生产产品。 Future接口提供方法来检测任务是否被执行完,等待任务执行完获得结果,也可以设置任务执行的超时时间。这个设置超时的方法就是实现Java程 序执行超时的关键。 Future接口是一个泛型接口,严格的格式应该是Future,其中V代表了Future执行的任务返回值的类型。 Future接口的方法介绍如下: boolean cancel(boolean mayInterruptIfRunning) 取消任务的执行。参数指定是否立即中断任务执行,或者等等任务结束 boolean isCancelled() 任务是否已经取消,任务正常完成前将其取消,则返回true boolean isDone() 任务是否已经完成。需要注意的是如果任务正常终止、异常或取消,都将返回true V get() throws InterruptedException, ExecutionException 等待任务执行结束,然后获得V类型的结果。InterruptedException 线程被中断异常, ExecutionException任务执行异常,如果任务被取消,还会抛出CancellationException V get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException 同上面的get功能一样,多了设置超时时间。参数timeout指定超时时间,uint指定时间的单位,在枚举类TimeUnit中有相关的定义。如果计 算超时,将抛出TimeoutException Future的实现类有java.util.concurrent.FutureTask即 javax.swing.SwingWorker。通常使用FutureTask来处理我们的任务。FutureTask类同时又 实现了Runnable接口,所以可以直接提交给Executor执行。使用FutureTask实现超时执行的代码如附件:FutureTaskAndExcutor.java 不直接构造Future对象,也可以使用ExecutorService.submit方法来获得Future对象,submit方法即支持以 Callable接口类型,也支持Runnable接口作为参数,具有很大的灵活性。使用示例如FutureTaskAndExcutor中的limitDemo2方法。


