全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:966
推到 Plurk!
推到 Facebook!

當一個事件呼叫執行緒啟動時這個事件可以等待執行緒執行完嗎

尚未結案
renth555
一般會員


發表:32
回覆:65
積分:19
註冊:2003-02-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-17 00:41:55 IP:61.56.xxx.xxx 未訂閱
 
void __fastcall TForm1::Button9Click(TObject *Sender)
{       //-- 啟動執行緒作上傳動作
   MyThread=new TMyThread();
   MyThread->FreeOnTerminate=true;
   
   //-- 等待執行緒執行完成 
   Query1->ApplyUpdates();    }
可以這樣做嗎
azurecloud
中階會員


發表:52
回覆:108
積分:92
註冊:2003-09-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-17 03:40:44 IP:163.13.xxx.xxx 未訂閱
Hi,renth555 您好:     我對 BCB 並不熟,但可提供你一個想法,在 Delphi 中有測試過    先宣告一個全域變數,這裡以 string 為例,並預設為空字串    // Thread內的一的宣告完成的動作 procedure QueryThread.GiveAnswer; begin   OKWord:='OK'; // 當 thread 呼叫此方法後將字串改為 ok end;    ******************************************************************* Synchronize(GiveAnswer); // thread.Execute 裡的最後加這一行宣告完成    ******************************************************************* while (OKWord='') do // 還未執行完成時(完成時會被改成 'ok' )      begin         //主程式中要等執行緒執行完成後才執行的程式碼放這裡      end;    希望幫得上忙    =========== 努力修行中... ===========
anpino
版主


發表:31
回覆:477
積分:231
註冊:2003-01-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-17 09:11:01 IP:61.66.xxx.xxx 未訂閱
可以將Query1->ApplyUpdates(); 移到 TThread 的 OnTerminate 中執行。 ------------------------------- 數學系是內功很強(邏輯/分析) 資工系是招式很多(程式技巧) 就像令狐沖
renth555
一般會員


發表:32
回覆:65
積分:19
註冊:2003-02-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-22 14:18:14 IP:61.56.xxx.xxx 未訂閱
兩位前輩回應的方法都雷同 小弟不知如何加分 所以給分數較少的前輩 謝謝兩位教導
renth555
一般會員


發表:32
回覆:65
積分:19
註冊:2003-02-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-03-22 14:24:42 IP:61.56.xxx.xxx 未訂閱
想一想 anpino 的方法比較理想化 改變分數雍有者 (拍謝) 對不起
系統時間:2024-05-18 19:54:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!