测试了下,上传到服务器保存文件名为中文或是下载服务...上传文件,使用 保存为 中文名称 时会报错!非常感谢!正在使用中。刚学C#,今天在这里看到很多不错的学习资料,谢谢!...不错,学习jmail发送邮件核心代码。nb seo...泪求破解啊,不是VIP,怨念啊 命理风水堂敬启 公告:北京易达信动Qpay公司利...你好, 我现在是这样使用的 ss 值为 ...@weiyanlover 已针对该问题做了改进,...我一直在用这个类,觉得不错,因为我在写QQ农场外挂...
使用 BackgroundWorker 进行多线程编程
编辑:dnawo 日期:2009-05-04
在WinForm开发过程中,如果没有采用多线程编程,经常会出现在执行某个操作时整个界面卡死,无法再做其他操作,而采用多线程编程能很好的解决这个问题,但随之而来的又有线程间控件的操作问题(.NET不允许在创建某控件之外其他线程中操作控件),下边我们用一个例子说明怎么使用BackgroundWorker解决这一系列的问题:
复制内容到剪贴板
程序代码
程序代码private void button1_Click(object sender, EventArgs e)
{
using (System.ComponentModel.BackgroundWorker bgWorker = new System.ComponentModel.BackgroundWorker())
{
int i = 0;
//将会引起界面卡死的操作放在单独线程中执行
bgWorker.DoWork += delegate(object sender1, System.ComponentModel.DoWorkEventArgs e1)
{
foreach (string item in Directory.GetFiles(@"E:\www", "*.*", SearchOption.AllDirectories))
{
File.AppendAllText(@"E:\list.txt", item + "\r\n");
i++;
}
};
//在 RunWorkerCompleted 中操作线程间控件,这是允许的
bgWorker.RunWorkerCompleted += delegate(object sender1, System.ComponentModel.RunWorkerCompletedEventArgs e1)
{
textBox1.Text = string.Format("统计完成,总共{0}个文件.", i);
};
//开始执行
bgWorker.RunWorkerAsync();
}
}
{
using (System.ComponentModel.BackgroundWorker bgWorker = new System.ComponentModel.BackgroundWorker())
{
int i = 0;
//将会引起界面卡死的操作放在单独线程中执行
bgWorker.DoWork += delegate(object sender1, System.ComponentModel.DoWorkEventArgs e1)
{
foreach (string item in Directory.GetFiles(@"E:\www", "*.*", SearchOption.AllDirectories))
{
File.AppendAllText(@"E:\list.txt", item + "\r\n");
i++;
}
};
//在 RunWorkerCompleted 中操作线程间控件,这是允许的
bgWorker.RunWorkerCompleted += delegate(object sender1, System.ComponentModel.RunWorkerCompletedEventArgs e1)
{
textBox1.Text = string.Format("统计完成,总共{0}个文件.", i);
};
//开始执行
bgWorker.RunWorkerAsync();
}
}
评论: 0 | 引用: 0 | 查看次数: 568
发表评论
请登录后再发表评论!
上一篇
下一篇

文章来自:
Tags:
相关日志:

