這是我的故事:我有wcf服務。它接收到要做的工作。每個任務都被插入到阻塞隊列中。服務器將定期從這個隊列中取出項目並完成工作(在不同的線程中完全異步)。在我的「做」服務中,我需要知道什麼時候「我的」任務完成了。就像這樣:ManualResetEvent對象數組
public bool Do(int input)
{
// 1. Add task to the BlockingCollection queue
// 2. Block this thread from returning and observe/wait til my task is finished
return true;
}
這裏是我的建議/解決方案:
public bool Do(int input)
{
// 1. Create a ManualResetEvent object
// 2. Add this object to task
// 3. Add task to the BlockingCollection queue
// 4. Block this thread from returning - wait for ManualResetEvent object
return true;
}
所以,會有因爲有任務做是因爲許多ManualResetEvent的對象。我將從字面上有一個同步對象的數組。這是我的問題的好辦法嗎?
還是有更好的同步類用於我的情況?像等待和脈搏?
感謝您的幫助,
我很抱歉的標題。我不知道如何在標題中提出這個問題。
爲每個任務創建一個類State對象並創建一個List。將時間和id等屬性放入狀態以及線程對象中。 –
jdweng