一、前言
二、本節介紹最簡單的方法。
在主線程中,定義乙個子執行緒處理的物件,通過主線程啟動子執行緒。然後通過主線程,不斷的獲取最新的處理狀態。當然,也可以定義乙個全域性變數,子執行緒不斷更新該全域性變數,而主線程定時去獲取狀態資訊。
主線程不斷獲取子執行緒的處理狀態,可以通過定時器來完成。
注意,子執行緒沒有去操作ui(主線程)的任何元素。
這種方法是一種偷換概念的方法。
public partial class form1 : form //ui執行緒
private void 啟動子執行緒_click(object sender, eventargs e) //啟動子執行緒
private void button1_click(object sender, eventargs e) //主線程可以定時不斷的獲取子執行緒狀態,通過子執行緒物件
private void timer1_tick(object sender, eventargs e) //定時器不斷更新ui上,反應子執行緒處理狀態的資訊
}public class subthread // 子執行緒處理類
} while (flag);}}
如何跨越執行緒呼叫窗體上的控制項
ui 的響應速度 使得一切執行顯得更為快速。在 windows 中進行多執行緒程式設計曾經是 c 開發人員的專屬特權,但是現在,可以使用所有相容 microsoft net 的語言來編寫。不過 windows 窗體體系結構對執行緒使用制定了嚴格的規則。如果只是編寫單執行緒應用程式,則沒必要知道這些規...
如何跨越執行緒呼叫窗體上的控制項
ui 的響應速度 使得一切執行顯得更為快速。在 windows 中進行多執行緒程式設計曾經是 c 開發人員的專屬特權,但是現在,可以使用所有相容 microsoft net 的語言來編寫。不過 windows 窗體體系結構對執行緒使用制定了嚴格的規則。如果只是編寫單執行緒應用程式,則沒必要知道這些規...
如何跨執行緒呼叫winform窗體控制項
方法一 直接關閉異常,不檢查跨執行緒呼叫private void form1 load object sender,eventargs e 方法二 利用委託 舉例1 delegate void tasktype string sztext 這裡是因為執行緒的方法只能是object型別 void th...