2016-07-20 10 views
1

私は、スレッド(バックグラウンドワーカー、タスクなど)を要求する際に、前のスレッドがまだ処理中であるのを待つテクニックを探しています。スレッドにはオブジェクトライターがあり、ビジー状態の場合は書き込みが終了するまで次のスレッドで使用できません。前のリクエストが終了するまでスレッドのリクエストを保持する必要があります

各スレッド要求が発生する前に発生する処理が十分に長くて問題が発生しないことに注意してください。これはあくまでも予防的なものです。

私はここでスレッドをどのように要求するのかは、次のスレッドが呼び出されるような応答を戻すために重要であると推測しています。しかし、私はこれを設定する方法についていくつかの助けを使うことができます。誰かが同じようなデザインのシナリオを持っているなら、私はこの推奨テクニックを研究して喜んでいます。このようなスレッド処理の新しい並べ替え。典型的

答えて

0

ミューテックスを同期するために使用される

vb.net。

https://msdn.microsoft.com/en-us/library/windows/desktop/ms684266(v=vs.85).aspx

あなたはまた、ミューテックスを持っていたスレッドではなく、仕上げの死亡状況であるWAIT_ABANDONEDを扱う必要があります注意してください。

例として、ここで.NETの詳細:https://msdn.microsoft.com/en-us/library/system.threading.mutex(v=vs.110).aspx

+0

私はこれを今読んでおり、有望です。クリティカルセクションオブジェクトの使用に関するセクションもあります。あなたの答えをありがとう。 – htm11h

+0

最初のリンクは概要でした。 2番目のリンクは.net –

1

私はあなたがこれを実装することを計画かどうかはわかりませんが、あなたは直接スレッドを使用してTPL対を試してみて、使用する必要があります。 Tasksでは、完了するのを待つことができます。

は、次の例にhttps://msdn.microsoft.com/en-us/library/dd537610(v=vs.100).aspx

を参照してください。そして、あなたは違いに関する詳細な情報が必要な場合は、スレッドの違いタスクで次のように読みます。

http://blog.slaks.net/2013-10-11/threads-vs-tasks/

+0

です。これを行う方法を見つけようとしています。あなたの答えをありがとう、私はリンクを読むでしょう。 – htm11h

関連する問題