主表單是一個回圈,先啟動執行緒,當主表單查到執行緒完成使edit1.text:='1',進入下一個回圈,再啟動執行緒,當當主表單查到執行緒完成使edit1.text:='2'。
問題1 :如何讓主表單知道執行緒完成了,
2:如何讓主表單等執行緒執行完再執行下一個回圈。
本人一點思路也沒有,請各們大鳥指點一下,最好有個例子
uj5u.com熱心網友回復:
delphi 執行緒等待函式 WaitForSingleObject 百度一下。uj5u.com熱心網友回復:
樓上是借助 wait 函式把執行緒同步化,這是一種方法,寫起來稍微復雜一點。另一種方法是保持異步狀態,在子執行緒中定義一個 TNotifyEvent 事件,主執行緒用事件例程來監視。子執行緒執行完后激活此事件,主執行緒就可以接管控制權了。
uj5u.com熱心網友回復:
頂1樓。。。。uj5u.com熱心網友回復:
雖然可以用信號量來做,不過主執行緒一直卡在你的回圈里面?這個異步通知表單就行了:
1、執行緒完成發個訊息給表單
2、執行緒類設定個事件函式,Synchronize 函式呼叫你的事件,
uj5u.com熱心網友回復:
很多種方法可以實作信號量
事件
等都呆以解決
uj5u.com熱心網友回復:
TThread.CheckTerminated 檢查uj5u.com熱心網友回復:
Synchronize轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/146368.html
標籤:VCL組件開發及應用
