ここに私の物語があります:私はwcfサービスを持っています。それは仕事の要求を受け取ります。各タスクはブロッキングキューに挿入されます。サーバーはこのキューからアイテムを定期的に取り出し、作業を行います(別のスレッドでは完全に非同期)。私の "Do"サービスでは、 "私"の仕事がいつ行われたかを知る必要があります。このように: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オブジェクトが存在します。私は文字通りシンクオブジェクトの配列を持っています。それは私の問題のための良い解決策ですか?
私の場合に使用する同期クラスがありますか?待っているとパルスのように?助けのための
おかげで、
私はタイトルのためにごめんなさい。私はタイトルでこの質問をする方法を知らなかった。
各タスクのクラス状態オブジェクトを作成し、リストを作成します。状態とスレッドオブジェクトにtimeとidのようなプロパティを入れます。 –
jdweng