1樓:匿名使用者
一樓的答案不僅不是正解,而且還會報錯!
正確的做法如下:
thread th = new thread(new threadstart(() =>
));}
}));
th.isbackground = true;//一定要標記為後臺執行緒,這樣這個執行緒才能在你的主執行緒停止後自動停止
th.start();
總之一句話,繁瑣的業務操作放在非主執行緒裡面去執行,或者用backgroundworker去執行,當需要操作介面元素時用invoke,但是在invoke裡面不能有繁瑣的業務操作
2樓:匿名使用者
invoke 會阻塞主執行緒(即ui執行緒)
呼叫invoke 直到執行完畢 才返回ui執行緒繼續執行
如果不需要等待 請用begininvoke (非同步執行)
3樓:匿名使用者
一樓正解 你是寫在guidproc這個類裡面的,這個是不行的.必須寫在form的類中這是執行緒安全的問題啊,c#中預設不允許在控制元件的非建立執行緒中設定控制元件的值。,
4樓:匿名使用者
我是用多執行緒控制的,其實你也可以用定時器來做,一個效果。
public partial class form2 : form
public void changename()}}
VC 多執行緒,c 多執行緒問題
當多個執行緒訪問乙個獨占性共享資源時,可以使用 臨界區 物件。任一時刻只有乙個執行緒可以擁有臨界區物件,擁有臨界區的執行緒可以訪問被保護起來的資源或 段,其他希望進入臨界區的執行緒將被掛起等待,直到擁有臨界區的執行緒放棄臨界區時為止,這樣就保證了不會在同一時刻出現多個執行緒訪問共享資源。ccriti...
c多執行緒UI無響應,c 多執行緒 UI無響應
因為你在使用多執行緒啊 在子執行緒裡面不可以直接操作主線程裡面的控制項,你主要的問題 在這裡invokerequired 阻塞了 ui執行緒。請你仔細看看下面的內容吧。在windows form中使用多執行緒的,最重要的一條注意事項是,除了建立控制項的執行緒以外,絕對不要在任何其他執行緒裡面呼叫控制...
求c建立多執行緒的作用和方法
在.net中,多執行緒功能是在system.threading命名空間中定義的。因此,在使用任何執行緒類之前,必須定義 system.threading命名空間。定義方法如下 using system.threading 啟動執行緒system.threading命名空間中的thread類代表乙個執...