using system; using system.collections.generic; using system.componentmodel;
using system.data; using system.drawing;
using system.linq; using system.text;
using system.windows.forms;
using system.threading;
public partial class form1 : form
public form1()
initializecomponent();
public delegate void mymethod(); //宣告乙個委託,以使其它執行緒訪問 //按鈕
private void button1_click(object sender, eventargs e)
thread aaa = new thread(new threadstart(opendialogonotherthread));
aaa.start();
//其它執行緒開啟對話方塊
void opendialogonotherthread()
mymethod opendialog = new mymethod(this.opendialog);
this.invoke(opendialog); //在當前執行緒,呼叫opendialog
//開啟對話方塊
void opendialog()
openfiledialog openfiledialog = new openfiledialog();
openfiledialog.showdialog();
跨執行緒訪問控制項
程序是作業系統分配資源的最小單位,程序之間隔離,作為資源的擁有者,在建立 cpu處理時切換以及撤銷的過程中花費時間較長,而執行緒是作業系統任務排程的最小單元,對於每個程序中由多個列表內容執行緒執行對應的方法體,完成後立即釋放,這樣作業系統對執行緒處理起來更加容易,實現了併發程式。using syst...
c 跨執行緒訪問控制項
訪問 windows 窗體控制項本質上不是執行緒安全的。如果有兩個或多個執行緒操作某一控制項的狀態,則可能會迫使該控制項進入一種不一致的狀態。還可能出現其他與執行緒相關的 bug,包括爭用情況和死鎖。所以,確保以執行緒安全方式訪問控制項是非常重要的。private static object dat...
初試C 多執行緒 跨執行緒訪問控制項
c 裡建立執行緒的方式是 thread t new thread new threadstart this.dosomething t.start 裡面的dosomething是主線程裡的乙個函式,在裡面做自己需要的操作。那我就建了乙個winform程式來試一下,畫了乙個button1,乙個text...