我用的是VS2005,
執行緒的實現可以用種方法..目前我知道的.一種是安全呼叫,一種是不安全呼叫
先說不安全呼叫
先加入名稱空間usingSystem.Threading;
然後在要用新執行緒執行的方法中加入
Threada=newThread(newThreadStart(sayhi());
然後用a.start();開始新的執行緒,執行的程式碼放到
privatevoidsayhi()
{
Messagebox.Show("HelloNewThreading");
}
這樣執行的話,就算關了主介面,這個對話方塊也不會消失
如果想在這個新程序中改變主程式中的介面,則需要在改變前加入一句話
System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls=false;
這樣就可以在新的程序中操作主窗體的控制元件,比如label1.Text="Hello";
另一種方法是安全呼叫,不過VS2005中提供的BackgroundWorker,可以很方便的進行呼叫執行緒,同樣,想透過新程序訪問主程式的話也是需要加入
BackgroundWorker控制元件很方便,
託一個到設計介面裡,雙擊這個控制元件,然後會生成一個privatevoidbackgroundWorker1_DoWork(objectsender,EventArgse)事件
把新執行緒要做的工作寫在下邊的程式碼裡
然後透過this.backgroundWorker1.RunWorkerAsync();呼叫DOWORK的程式碼
而且還可以用privatevoidbackgroundWorker1_RunWorkerCompleted(objectsender,RunWorkerCompletedEventArgse)可以做的收尾工作.
在BackgroundWorker的方法列表中有
我用的是VS2005,
執行緒的實現可以用種方法..目前我知道的.一種是安全呼叫,一種是不安全呼叫
先說不安全呼叫
先加入名稱空間usingSystem.Threading;
然後在要用新執行緒執行的方法中加入
Threada=newThread(newThreadStart(sayhi());
然後用a.start();開始新的執行緒,執行的程式碼放到
privatevoidsayhi()
{
Messagebox.Show("HelloNewThreading");
}
這樣執行的話,就算關了主介面,這個對話方塊也不會消失
如果想在這個新程序中改變主程式中的介面,則需要在改變前加入一句話
System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls=false;
這樣就可以在新的程序中操作主窗體的控制元件,比如label1.Text="Hello";
另一種方法是安全呼叫,不過VS2005中提供的BackgroundWorker,可以很方便的進行呼叫執行緒,同樣,想透過新程序訪問主程式的話也是需要加入
System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls=false;
BackgroundWorker控制元件很方便,
託一個到設計介面裡,雙擊這個控制元件,然後會生成一個privatevoidbackgroundWorker1_DoWork(objectsender,EventArgse)事件
把新執行緒要做的工作寫在下邊的程式碼裡
然後透過this.backgroundWorker1.RunWorkerAsync();呼叫DOWORK的程式碼
而且還可以用privatevoidbackgroundWorker1_RunWorkerCompleted(objectsender,RunWorkerCompletedEventArgse)可以做的收尾工作.
在BackgroundWorker的方法列表中有