想在thread中使用timer |
答題得分者是:wj77
|
74205
一般會員 ![]() ![]() 發表:8 回覆:16 積分:4 註冊:2002-10-23 發送簡訊給我 |
小弟我用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 發送簡訊給我 |
|
74205
一般會員 ![]() ![]() 發表:8 回覆:16 積分:4 註冊:2002-10-23 發送簡訊給我 |
|
wj77
一般會員 ![]() ![]() 發表:0 回覆:9 積分:6 註冊:2003-02-17 發送簡訊給我 |
引言: 有設 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 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |