災爺  

线程的实现可以用种方法..目前我知道的.一种是安全调用,一种是不安全调用
先说不安全调用
先加入命名空间 using System.Threading;
然后在要用新线程运行的方法中加入
Thread a=new Thread(new ThreadStart(sayhi());
然后用a.start();开始新的线程,执行的代码放到
private void sayhi()
{
   Messagebox.Show("Hello New Threading");
}
这样运行的话,就算关了主界面,这个对话框也不会消失
如果想在这个新进程中改变主程序中的界面,则需要在改变前加入一句话
System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
这样就可以在新的进程中操作主窗体的控件,比如label1.Text="Hello";
另一种方法是安全调用,不过VS2005中提供的BackgroundWorker,可以很方便的进行调用线程,同样,想通过新进程访问主程序的话 也是需要加入
System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;

BackgroundWorker控件很方便,
托一个到设计界面里,双击这个控件,然后会生成一个private void backgroundWorker1_DoWork(object sender,EventArgs e)事件
把新线程要做的工作写在下边的代码里
然后通过this.backgroundWorker1.RunWorkerAsync();调用DOWORK的代码
而且还可以用private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)可以做的收尾工作.
在BackgroundWorker的方法列表中有

posted on 2010-10-29 23:32  災爺  阅读(230)  评论(0)    收藏  举报