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

想在thread中使用timer

答題得分者是:wj77
74205
一般會員


發表:8
回覆:16
積分:4
註冊:2002-10-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-08 02:17:57 IP:163.28.xxx.xxx 未訂閱
小弟我用TThread做多執行緒工作 其中有必要使用到timer 所以我在TThread見構時就new了一個timer 預設enable為false,interval 100 並且在thread中設定了timer的even 結果當我在執行緒中將timer enable設成true後 timer的even並沒有被觸發 怎麼會這樣呢? 我的程式流程大致如下: TThread建構子 { TTimer *timer1 = new TTimer(Form1) timer1->Enable=false; timer1->Interval=100; } TThread Excute() { synchronize(Afunction) } 一堆function... void Thread::Timer1 { (這段都沒執行) } Afunction { .............. .............. timer1->enable=true; } 有疏忽之處請各位提示 謝謝
wj77
一般會員


發表:0
回覆:9
積分:6
註冊:2003-02-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-09 00:12:28 IP:61.224.xxx.xxx 未訂閱
你好像忘了設定OnTimer event了哦
74205
一般會員


發表:8
回覆:16
積分:4
註冊:2002-10-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-10 18:27:11 IP:163.28.xxx.xxx 未訂閱
引言: 你好像忘了設定OnTimer event了哦
有設 void __fastcall thread名稱::Timer1Timer(TObject *Sender)
wj77
一般會員


發表:0
回覆:9
積分:6
註冊:2003-02-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-10 20:41:54 IP:61.224.xxx.xxx 未訂閱
引言: 有設 void __fastcall thread名稱::Timer1Timer(TObject *Sender)
那你的thread應該是這樣的 TThread建構子 { TTimer *timer1 = new TTimer(Form1) timer1->Enable=false; timer1->Interval=100; timer1->OnTimer = Timer1Timer; <--- 設定timer1的OnTimer event } .....略.... ........... void __fastcall thread名稱::Timer1Timer(TObject *Sender) { Timer1(); <--- call (這段都沒執行)的function } 這樣應該就不會有問題了...
74205
一般會員


發表:8
回覆:16
積分:4
註冊:2002-10-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-10 20:52:17 IP:163.28.xxx.xxx 未訂閱
謝謝 此外 想在thread中使用timer 也可用win32 SDK 的SetTimer()用callback function 效果也不錯
系統時間:2024-09-09 4:09:34
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!