線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:4776
推到 Plurk!
推到 Facebook!

結束執行緒的問題

答題得分者是:DavidLo
czolth
一般會員


發表:7
回覆:3
積分:2
註冊:2012-12-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2013-08-07 13:27:32 IP:61.219.xxx.xxx 訂閱
請問大家一個執行緒使用的問題:
若我想關閉一個設有兩個執行緒(SNV, RSV)的程式視窗
我在結束按鍵中執行以下指令
SND->Terminate();
RSV->Terminate();
Close();

為何在執行按鍵動作後程式視窗可以正常關閉
但在windows工作管理員中發現這一個程式仍存在處理程序表單中
又,該如何才能正常正確關閉執行緒程式?

謝謝大家的幫忙及協助。

Victor4022
中階會員


發表:0
回覆:76
積分:90
註冊:2011-02-20

發送簡訊給我
#2 引用回覆 回覆 發表時間:2013-08-08 21:29:57 IP:106.107.xxx.xxx 訂閱
可能關閉的視窗 thread 不是 main thread,main thread 被結束,process 自然會結束。

http://msdn.microsoft.com/en-us/library/windows/desktop/ms686714(v=vs.85).aspx
使用前先先呼叫用 OpenProcess (需下達 PROCESS_TERMINATE ) 這個參數,這樣就能對一個 process 完整的做關閉。

===================引 用 czolth 文 章===================
請問大家一個執行緒使用的問題:
若我想關閉一個設有兩個執行緒(SNV, RSV)的程式視窗
我在結束按鍵中執行以下指令
SND->Terminate();
RSV->Terminate();
Close();

為何在執行按鍵動作後程式視窗可以正常關閉
但在windows工作管理員中發現這一個程式仍存在處理程序表單中
又,該如何才能正常正確關閉執行緒程式?

謝謝大家的幫忙及協助。

DavidLo
高階會員


發表:17
回覆:225
積分:168
註冊:2004-07-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2013-08-10 16:06:39 IP:114.24.xxx.xxx 訂閱
 SND->Terminate();

只是將Terminated flag 設為 true

當Terminated為true時,執行緒必須自行結束執行
系統時間:2024-11-21 19:23:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!