[問題] while流程控制
我遇到一個流程控制的問題
感覺是個簡單問題,高手用小腦反射就秒殺了
但是我經驗不夠 + 天資愚鈍 = 想破頭想不出解答
下面我大概敘述我想做的事情
我有一個Queue,裡面放著我想做的事情 f1, f2, f3...
while loop不段檢查每個timer
timer1 expire then run f1
timer2 expire then run f2
timer3 expire then run f3
每個 f 執行之後不需回頭再執行,用完就丟
while 1
if timer1 expired
pop Queue
// 我希望這邊只執行f1
if timer2 expired
pop Queue
// 我希望這邊只執行f2
if timer3 expired
pop Queue
// 我希望這邊只執行f3
但是如果當timer1 expired成立之後
雖然timer2 and timer3還在跑
但是while loop透過 timer1 expired的條件
就已經把所有f1 f2 f3...pop and 執行了
可否請高手指點迷津
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 204.96.168.3
※ 編輯: sean72 來自: 204.96.168.3 (04/25 08:04)
※ sean72:轉錄至看板 Programming 04/25 08:04
推
04/25 08:16, , 1F
04/25 08:16, 1F
不行耶
因為進入while不斷檢查之前,timer都已經設定好了
thx
※ 編輯: sean72 來自: 204.96.168.3 (04/25 08:25)
→
04/25 08:30, , 2F
04/25 08:30, 2F
→
04/25 08:31, , 3F
04/25 08:31, 3F
→
04/25 08:47, , 4F
04/25 08:47, 4F
推
04/25 09:08, , 5F
04/25 09:08, 5F
→
04/25 11:45, , 6F
04/25 11:45, 6F
→
04/25 11:47, , 7F
04/25 11:47, 7F
→
04/25 13:40, , 8F
04/25 13:40, 8F
我的方法如下
while 1
if timer1 expired && f1_flag done == false
pop Queue
run f1
f1_flag done == true
其他類推
這樣應該就沒有問題了
謝謝大家幫忙討論
※ 編輯: sean72 來自: 98.145.136.10 (04/25 13:59)
→
04/25 20:23, , 9F
04/25 20:23, 9F
→
04/25 20:24, , 10F
04/25 20:24, 10F
→
04/25 20:28, , 11F
04/25 20:28, 11F
因為timer 是另外一個thread
當timer停止的時候會通知main thread去執行 f
※ 編輯: sean72 來自: 204.96.168.3 (04/26 05:12)
推
04/26 19:36, , 12F
04/26 19:36, 12F
→
04/26 19:37, , 13F
04/26 19:37, 13F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章