2016-09-26 9 views
-1

スレッドを処理する方法を探しています(セマフォを使用していると思います)。現在リージョンにあるすべてのスレッドがそこから抜け出すと(スレッドがそれ以上存在しないので)、このリージョンに影響を与える何かをしたい。その後、同じ時間に複数のスレッドが領域を再入可能にする必要があります。すべてのスレッドが領域に入るのを止める

ドキュメントでは、f.e.のいずれのプロパティも見つけられないため、セマフォを使ってどのように行うのか分かりません。どれくらい多くの人がその地域に入ることができるかということを変えさせ、何人が何人に入っているかを知ることさえできます。

どうすればいいですか?

+1

私たちはあなたの仕事/スレッドの実装を見て、あなたを助ける機会を得る必要があります。 "現在リージョン内にあるすべてのスレッドがそこから抜けると(スレッドがそれ以上存在しないので)、このリージョンに影響を与える何かをしたい"意味がない、スレッドがゼロのときにどうしたら "リージョンに影響を与える" ?私はあなたが "メイン"スレッドを持っていると仮定し、あなたはたくさんのタスクを起動していて、その領域にタスクがない場合にのみメインスレッドがその領域内の処理をしたいとします。 – Quantic

+0

申し訳ありませんが、理論的にこのボードで話すことができませんか?具体的なコードを投稿するのではなく、そのように表現するのが簡単な理論的なものです。 – Ravior

+0

あなたのタイトルはおそらくそれが保留になった理由です。あなたのテキストをもう一度読んでみると、「現在のコード領域にあるスレッドの数をどのように数えますか?また、あるスレッドを別のスレッドと区別するにはどうすればよいでしょうか?領域?"。私はそれに答えることはできませんが、[Synchronization Events and Wait Handles](https://msdn.microsoft.com/en-us/library/mt679037.aspx#Anchor_2)のように感じることができます。 「すべてのスレッドが領域に入るのをやめさせたい」場合は、その領域の上に 'while(true){}'を置くとスレッドは入りません。 – Quantic

答えて

0

ReaderWriterLockSlimクラスを探しているような音がします。多くのスレッドは読み込みロックを取得/取得できますが、1つのスレッドだけが書き込みロックを取得できます。

関連する問題