作者GooLoo (平凡)
看板C_and_CPP
標題[問題] 觸發
時間Sat Oct 24 17:18:31 2015
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
bcb
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
Button1, Button2
Button1按下去時,
會while(Repeat){...}
Button2按下去時,
會送出Repeat=0,想跳出while
想問一下, 除了這樣寫外, 還有其它更快觸發的寫法嗎?
因為...
可以達到中斷沒錯,
但都會等while做完"一次"才會中斷, 不會即時中斷
while一次時間久的話, 就會發現Button2會lag更久才中斷
想問怎麼寫會達到loop又快中斷?
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版)
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (CheckBox1->Checked == true){
while(Repeat){
Application->ProcessMessages();
MSComm1->Output = TBuff;
}
Repeat = 1;
}else {
MSComm1->Output = TBuff;
}
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Repeat = 0;
}
補充說明(Supplement):
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.251.230.192
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1445678314.A.DF6.html
※ 編輯: GooLoo (111.251.230.192), 10/24/2015 17:19:16
→ james732: 把耗時的工作寫成背景執行緒 10/25 01:17
推 flylover: 把工作寫成thread.. button2讓thread pause..馬上停 10/25 22:10