C 多執行緒,在呼叫thread Abort 後WinForm總會卡死,不知為何???

2025-01-02 01:15:15 字數 2625 閱讀 7736

1樓:lin華銳

你點選了button3之後,執行了強制關閉執行緒 )這個監聽listener是**程裡開啟的,關閉執行緒之後listener無法釋放資源(不會到這樣說對不對),所以導致程式卡死。如果你先關閉監聽再執行 )就可以解決。

2樓:網友

這段**沒有任何問題。。。也不會引起主執行緒卡死。在你的**沒貼全的情況下不能進行下一步分析。

public partial class form1 : form

public form1()

initializecomponent();

thread th;

private void button1_click(object sender, eventargs e)

不處於監聽狀態");

return;

if ("已經終止");

private void form1_load(object sender, eventargs e)

th = new thread(new threadstart(delegate

int i = 0;

while (true)i++;

c#多執行緒、委託、介面卡死的問題

3樓:陽光的雷咩咩

簡單地說執行緒與委託並沒有直接的關聯,在主執行緒(ui執行緒也就是後臺**)裡開啟子執行緒,就能達到防止介面卡死的,至於委託一般只是在需要在子執行緒裡更新ui才需要invoke委託。你可以看看。以上的 action(()這種簡單寫法,不需要委託。

c#執行緒問題,為什麼執行時會卡死?

4樓:玩轉資料處理

把整個工程壓縮黏上來,丟一堆**上來鬼才幫你看。

5樓:網友

除錯,一步一步的追 問題總會出來的,只看**看不出什麼的。

c# winform程式中,使用多執行緒,在關閉窗體時 怎麼關閉窗體的所有執行緒。使程式退出。

6樓:匿名使用者

程式退出的方法:;只是關閉當前視窗,若不是主窗體的話,是無法退出程式的,另外若有託管執行緒(非主執行緒),也無法乾淨地退出;;強制所有訊息中止,退出所有的窗體,但是若有託管執行緒(非主執行緒),也無法乾淨地退出;;強制中止呼叫執行緒上的所有訊息,同樣面臨其它執行緒無法正確退出的問題;; 這是最徹底的退出方式,不管什麼執行緒都被強制退出,把程式結束的很乾淨。

為什麼在c# winform中,form1.hide();會呼叫form1_formclosing事件?

7樓:旅初彤

不會吧,form1_formclosing是視窗正在關閉事件,hide只能是隱藏窗體。

c#呼叫thread.aborty一定會引發threadabortexception嗎?

8樓:網友

會觸發的。

這個exception是正常的,你只需要把這個異常抓住,然後不處理就行了。

但是先在貌似不推薦用這個方法來取消執行緒。

9樓:網友

所謂exception就是為了告訴你這裡出問題了需要處理,你在規定的地方處理完就沒問題了。對於thread來說,使用abort來終止是不對的,應該儘量通過入口點return來結束。如果需要從外面控制,可以加乙個event來同步,set這個event之後,thread檢測到然後退出。

這樣這個執行緒才有時間處理資源釋放之類的問題。

c#編寫的winform程式,執行一段時間後越來越卡,怎麼辦?

10樓:網友

肯定是你**邏輯有問題啦~

最簡答的乙個方法 ; 垃圾**。

最好檢查一下你的所有變數的作用域。

並且檢查一下不要再迴圈中初始化物件那樣很慢你不貼**誰也不知道怎麼回事。

物件被dispose()不見得資源就全被釋放了,.net依據一定機制去釋放資源,物件被dispose()了也不會馬上就釋放資源。

11樓:網友

新建乙個沒返回值,沒引數的函式,用於存放你的執行緒方法,然後在主函式里初始化乙個thread類,把剛才那個方法放進去初始方法中,然後呼叫start方法將執行緒啟動,關閉執行緒的話,一般是不用的,因為系統會自動**了。

12樓:網友

你有沒有開執行緒,而且沒關掉;

關於釋放資源我也不懂,推薦個部落格。

13樓:網友

其實timer就是實現了多執行緒的,所以用的時候最好用完釋放資源,不然用久了。

系統都可能宕機的。

14樓:董曲貢穎秀

把要打包的內容新增到解決方案,執行後確定沒有錯誤,則可以進行打包操作如下:選擇你的解決方案,右擊選屬性在彈出的頁面左側一列有乙個按鈕「釋出」設定應用程式檔案,需要的dll要選擇『包括''系統必備',如果安裝目標上不能確定是否安裝了。要把。

包括進來確定選擇好釋出位置(第乙個選擇路徑那兒就是)點選立即釋出即可如果生成dll則在『應用程式』->輸出型別,選擇『類庫』webservice:建立專案的時候選擇c#->服務應用程式。

c 多執行緒同時執行兩個函式該怎樣程式設計啊

這個是完全取決於bai你的需求。如果du 你只是做控制同一個資料zhi源使用的,就可以dao一個執行緒,分 內別在收到不同的訊息,容呼叫不同的函式。畢竟你只有一個鍵盤,不會真的同時收到兩個事件。這種構架下面,兩個函式必須比較短不能有堵塞,或者等待 大多數情況是這樣的 另外一種情況是,當你的處理量比較...

在Qt程式設計中,如何呼叫C的STL

include 相應的標頭檔案,直接用就可以了。儲存好後,配置.pro工程檔案。如果程式 比較簡單,就直接在命令列裡輸入 qmake project qmake make 三步後自動生成可執行檔案。qt的編譯器是基於gcc等c 編譯器的,因此,只要你的編譯器支援stl,就可以直接用了。不過,qt裡有...

C語言函式呼叫引數傳遞的是什麼,在C語言裡向函式傳遞的是「引數」是什麼意思

c語言傳遞的是值而不是地址,這一點從vb轉過來的程式設計師一定要注意。否則不經版 意間就會犯權錯誤。另外下層函式修改上層函式變數不是一種好習慣,容易引發錯誤。c語言中函式可以返回一個函式值,如果你需要返回多個函式值可以用下面的形式 fun int a,int b main 如果按vb的習慣,fun ...