Runtime中如何讓程式停止 |
尚未結案
|
Ming Lin
一般會員 發表:27 回覆:53 積分:21 註冊:2003-04-15 發送簡訊給我 |
|
axsoft
版主 發表:681 回覆:1056 積分:969 註冊:2002-03-13 發送簡訊給我 |
試試以下的範例
#includeHAVE A NICE DAY FOR YOU 發表人 - axsoft 於 2003/06/09 18:18:09 |
axsoft
版主 發表:681 回覆:1056 積分:969 註冊:2002-03-13 發送簡訊給我 |
|
artist1002
高階會員 發表:2 回覆:155 積分:151 註冊:2002-09-26 發送簡訊給我 |
如果是要按一個button來停止程式的話
如axsoft的範例,可以在do while判斷一個指定的旗標
然後在ButtonClick裡面改變旗標
如:
do{ something; while (flag) 在ButtonClick裡將 flag=false; 如此...可以讓do while停止但是有時程式跑在do while裡面,會沒辦法觸發到ButtonClick 只要在do while裡面加上Appliction->ProcessMessages();就可以了 ========= 如果是要在ButtonClick裡面強制關閉程式 就在ButtonClick裡面使用Application->Terminate();來強制關閉程式 |
axsoft
版主 發表:681 回覆:1056 積分:969 註冊:2002-03-13 發送簡訊給我 |
|
artist1002
高階會員 發表:2 回覆:155 積分:151 註冊:2002-09-26 發送簡訊給我 |
|
Ming Lin
一般會員 發表:27 回覆:53 積分:21 註冊:2003-04-15 發送簡訊給我 |
|
artist1002
高階會員 發表:2 回覆:155 積分:151 註冊:2002-09-26 發送簡訊給我 |
根據我的經驗
使用多執行緒的場合多半是處理磁碟動作或是網路動作等需要等待回應的程式
利用多執行緒的方式來使效率提升
或是想要讓程序同步執行的時候也需要使用多執行緒. 在這個問題中就要看你在do while裡面處理什麼動作
如果是連續的運算就不太適合了.
連續的運算使用多執行緒也不會提升效率.
如果是怕連續的運算導致程式停止回應.
在do while迴圈中適當的加上Application->ProcessMessages();
讓程式能繼續處理其他的訊息就可以了. 總之,多執行緒會讓程式的控制變得複雜且常會有不安全的例外.
如果不是特別的需要,減少多執行緒的使用會讓程式跑的更穩定.
如果一定要使用多執行緒,要在流程控制和同步處理上面下工夫.
|
Ming Lin
一般會員 發表:27 回覆:53 積分:21 註冊:2003-04-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |