如何用 Thread 呼叫視窗的函數?

基礎篇

C# 簡介

開發環境

變數與運算

流程控制

陣列

函數

物件

例外處理

函式庫篇

檔案處理

資料結構

正規表達式

Thread

應用篇

視窗程式

媒體影音

網路程式

遊戲程式

手機程式

資料庫

雲端運算

特殊功能

委派

擴展方法

序列化

LinQ

WPF

網路資源

教學影片

投影片

教學文章

軟體下載

考題解答

101習題

在 WinForm 等視窗中,必須使用 invoke() 這個函數,才能讓執行緒呼叫視窗中的函數,否則就會卡住,請參考下列網址與範例。

http://msdn.microsoft.com/zh-tw/library/zyzhdc6b(VS.80).aspx

 // The following code assumes a 'ListBox' and a 'Button' control are added 
to a form, 
// containing a delegate which encapsulates a method that adds items to the 
listbox. 

  public class MyThreadClass 
  { 
     MyFormControl myFormControl1; 
     public MyThreadClass(MyFormControl myForm) 
     { 
        myFormControl1 = myForm; 
     } 

     public void Run() 
     { 
        // Execute the specified delegate on the thread that owns 
        // 'myFormControl1' control's underlying window handle. 
        myFormControl1.Invoke(myFormControl1.myDelegate); 
     } 
  }
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License