这段代码改成线程更新界面 http://dotcpp.iteye.com/blog/1681444 参考,自己写写。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 默认情况下.net是不允许跨线程访问控件的,如果要使用,可以通过Control.Invoke方法,参考1楼的例子。如果自己不愿意处理线程的,也可以用BackgroundWorker来实现,具体使用方法参考MSDN。 仅供参考!BackgroundWorker bg = new BackgroundWorker(); public Form7() { InitializeComponent(); bg.WorkerReportsProgress = true; bg.DoWork += new DoWorkEventHandler(bg_DoWork); bg.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bg_RunWorkerCompleted); } private void bg_DoWork(object sender, DoWorkEventArgs e) { FindFile("d:\\", "*.exe"); } private void FindFile(string FoldPath, string filter) { try { DirectoryInfo thefolder = new DirectoryInfo(FoldPath); foreach (FileInfo nextfile in thefolder.GetFiles(filter)) { this.listBox1.Items.Add(nextfile.FullName); } foreach (DirectoryInfo nextfolder in thefolder.GetDirectories()) { FindFile(nextfolder.FullName, filter); } } catch { } } private void bg_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { if (e.Error != null) { MessageBox.Show(e.Error.ToString()); } else { MessageBox.Show("Completed!"); } } c# 如何获取日文汉字的平假名? 在Windows Mobile上如何用C#调用Camera的功能,而不显示Camera的面。 picturebox 问题 如何使用RasDial拨号,调用API。急!!! 我现在学会了c#,可是还没有参与开发过,谁愿意要我? 智能设备中如何实现文件下载? DataGrid如何进行行排序,行列怎么转换? 请推荐一个类似DataGrid的控件 谁能提供一些关于ORM的设计文档? 在SqlDataAdapter的InsertCommand使用存储过程,我如何设定动态表名称? C#连接服务器数据库的疑问 大神进啊 动态录像功能
BackgroundWorker bg = new BackgroundWorker(); public Form7()
{
InitializeComponent();
bg.WorkerReportsProgress = true;
bg.DoWork += new DoWorkEventHandler(bg_DoWork);
bg.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bg_RunWorkerCompleted);
} private void bg_DoWork(object sender, DoWorkEventArgs e)
{
FindFile("d:\\", "*.exe");
} private void FindFile(string FoldPath, string filter)
{
try
{
DirectoryInfo thefolder = new DirectoryInfo(FoldPath);
foreach (FileInfo nextfile in thefolder.GetFiles(filter))
{
this.listBox1.Items.Add(nextfile.FullName);
}
foreach (DirectoryInfo nextfolder in thefolder.GetDirectories())
{
FindFile(nextfolder.FullName, filter);
}
}
catch
{ }
} private void bg_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Error != null)
{
MessageBox.Show(e.Error.ToString());
}
else
{
MessageBox.Show("Completed!");
}
}