0
我想在幾件作品同時運行的時候運行下一件作品我想在幾件作品同時運行的時候運行下一件作品
我不能指望其中的順序工作已經完成。
WorkA, WorkB, WorkC is running at the same time at different threads
當每個工作完成 的code Manager.SetWorkState(Manager.WorkState)
運行
Ex : WorkA is done
Manager.SetWorkState(Manager.WorkState) Manager.SetWorkState(Manager.WorkState.WorkAIsDone);
class Manager
{
public enum WorkState
{
WorkAIsDone = 0x1,
WorkBIsDone = 0x2,
WorkCIsDone = 0x4,
}
WorkState state;
public void SetWorkState(WorkState newState)
{
state = state | newState;
if (state == (WorkState.WorkAIsDone | WorkState.WorkBIsDone | WorkState.WorkCIsDone))
{
Run_NextWork();
}
}
public void Run_NextWork() { ... }
}
是否有這種情況比較有效的解決方案?
你對這種情況的解決方案是什麼?
所以,你要當A,B和C已經完成發生什麼想法? – khlr 2015-01-04 14:28:36
是的。那就對了。 – user2523112 2015-01-04 14:31:33
它*效率不高,需要幾個納秒。重點在於寫*正確的*代碼,'state = newState | newState;'是無稽之談。 – 2015-01-04 14:37:54