[問題] 該如何等一個子函數做完事情呢?

看板C_Sharp作者 (Orz)時間15年前 (2010/05/24 19:57), 編輯推噓0(0015)
留言15則, 5人參與, 最新討論串1/7 (看更多)
我的程式邏輯是這樣的 do { switch(int) case 1: A(); case 2: B(); tx.enable=true; C(); default: break; }while(true) 我B和C的子程式中間,有一個tx.enable要定時做100次的某件事情(timer) 但是要等B完做tx, tx做完100次才進到C這個子程式, 請問這邊該怎麼做比較適合呢? 直接選tx.enable, 這樣整個邏輯會同時做下去, 我這個邏輯是有前後關係的. 謝謝大家, -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.169.227.253

05/24 20:41, , 1F
加個count?
05/24 20:41, 1F

05/24 21:54, , 2F
可是加個count,又會讓tx這個timer再被執行一次.
05/24 21:54, 2F

05/24 21:54, , 3F
所以我一直想不到好方法.
05/24 21:54, 3F

05/24 22:02, , 4F
不太懂你的意思,你是要100次做完才做C還是同時做?
05/24 22:02, 4F

05/24 22:04, , 5F
加個 mutex 來上鎖吧 XD
05/24 22:04, 5F

05/24 22:26, , 6F
我要100次做完才做C..,而100次是由timer驅動的
05/24 22:26, 6F

05/24 22:26, , 7F
mutex?.不太理解要怎麼做,只用過mutex防止同一程式執行兩
05/24 22:26, 7F

05/24 22:29, , 8F
那for loop + Thread.Sleep()來取代timer呢?
05/24 22:29, 8F

05/24 22:31, , 9F
thread.sleep,會不會讓整支程式不動?
05/24 22:31, 9F

05/24 22:32, , 10F
因為我整支程式就是寫成這樣內含ABC幾個子函式.
05/24 22:32, 10F

05/24 22:32, , 11F
mai點start就開始依照順序執行1 2 3
05/24 22:32, 11F

05/24 22:44, , 12F
Sleep()會讓程式停住沒錯,但這樣不是就能達到你的目的?
05/24 22:44, 12F

05/24 22:47, , 13F
還是你希望程式在執行100次的過程中同時做其他的事?
05/24 22:47, 13F

05/24 23:03, , 14F
把C也寫在timer裡面,執行完100次才執行C,執行C才結束
05/24 23:03, 14F

05/24 23:03, , 15F
timer。這樣如何?
05/24 23:03, 15F
文章代碼(AID): #1B-cd0SL (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #1B-cd0SL (C_Sharp)