簡體   English   中英

如何從子線程關閉主線程

[英]how to close main thread from sub thread

我正在研究VSTO。 我的過程很耗時,因此我需要實現一個“停止”按鈕來停止該過程。 這樣我就可以創建一個帶有停止按鈕的UI表單,並在調用主進程時在子線程中顯示該UI表單。 現在,我試圖從UI停止按鈕停止主進程,但是我嘗試將其關閉所有進程及其文檔,但是我只需要停止該進程,而已嘗試關閉進程,但無法正常工作

Enviorment.Exit(1);
process.Kill();
process.Close();
Close();

我不確定為什么您將線程稱為“進程”,但是問題是關於子線程的,因此我將針對線程進行回答。

如果要結束線程,請使其定期測試一個公共布爾值,該值在對話框類中定義為“ public volatile bool stopRequested = false;”。 如果布爾值設置為true,則只需使用“ return”關鍵字來停止線程。

要從對話框中止線程,只需輸入btn_Click事件:“ this.stopRequested = true;”。

線程現在將意識到使用希望它停止,並且它將跳到“ return”行。 線程已關閉! \\ o /

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM