マルチスレッドの管理について質問です。
値をリストボックスに表示する処理をマルチスレッドで
100回実行したいのですが、スレッドを作り過ぎないように
スレッド数の最大を20個と規制したいです。
その為に現在のスレッド数を把握したいのですが
どのような処理をおこなえばいいのでしょうか?
色々と方法はあると思うのですが。。。
(MFCかSDKなど、スレッドの作り方にも依存するよう気が。。。)
取りあえず、メインの部分などで、スレッドの作成時にカウントをインクリメントし、
スレッド終了時のカウントをデクリメントすることで作成されているスレッド数は、
簡単に管理できると思います。
で、スレッド作成前にこのカウントの値が20以下か確認し、20を超えているようなら、
スレッドの作成を行わなければよいのでは?
多少排他制御は必要ですが、単純なカウントのインクリメント、デクリメントなら、
InterlockedIncrement()などのAPIが利用できますし。。。
KING・王 様 レスありがとうございます。
すいません 環境書いてませんでした。
VC6.0 SDKです。OSはWIN98です。
今
スレッド数を監視し20以下ならスレッド作成するスレッドを
作ってみました。
のちほど報告いたします。
ツイート | ![]() |