回覆列表
  • 1 # 設計的拉黑非人防

    我用的是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的方法列表中有

  • 中秋節和大豐收的關聯?
  • 石英機芯和機械有什麼不同?