作者liaommx (Orz)
看板C_Sharp
標題[問題] 該如何等一個子函數做完事情呢?
時間Mon May 24 19:57:49 2010
我的程式邏輯是這樣的
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
1F:→ chancewen:加個count? 05/24 20:41
2F:→ liaommx:可是加個count,又會讓tx這個timer再被執行一次. 05/24 21:54
3F:→ liaommx:所以我一直想不到好方法. 05/24 21:54
4F:→ mortleo:不太懂你的意思,你是要100次做完才做C還是同時做? 05/24 22:02
5F:→ james732:加個 mutex 來上鎖吧 XD 05/24 22:04
6F:→ liaommx:我要100次做完才做C..,而100次是由timer驅動的 05/24 22:26
7F:→ liaommx:mutex?.不太理解要怎麼做,只用過mutex防止同一程式執行兩 05/24 22:26
8F:→ evirtues:那for loop + Thread.Sleep()來取代timer呢? 05/24 22:29
9F:→ liaommx:thread.sleep,會不會讓整支程式不動? 05/24 22:31
10F:→ liaommx:因為我整支程式就是寫成這樣內含ABC幾個子函式. 05/24 22:32
11F:→ liaommx:mai點start就開始依照順序執行1 2 3 05/24 22:32
12F:→ evirtues:Sleep()會讓程式停住沒錯,但這樣不是就能達到你的目的? 05/24 22:44
13F:→ evirtues:還是你希望程式在執行100次的過程中同時做其他的事? 05/24 22:47
14F:→ mortleo:把C也寫在timer裡面,執行完100次才執行C,執行C才結束 05/24 23:03
15F:→ mortleo:timer。這樣如何? 05/24 23:03