スレッドプール内のスレッドの状態を確認することはできますか? 私たちのアプリケーションは、多くのスレッドを使用することがありますが、そのほとんどは ThreadPool.QueueUserWorkItem の呼び出しにかかっています。ただし、アプリケーションが実際に多くのことを行っていない場合、スレッド数は決して減少しません。最終的にこれらのスレッドは停止すると思っていたでしょう。
周りを読んで、すべてのタスクが完了したら一時停止状態に入る必要があり、再利用されない場合は最終的にウェイクアップして終了する必要があると思います。
アプリケーションは .Net Compact Framework v2 を使用しています。スレッドがスタックしている可能性がありますが、Visual Studio でアプリケーションを一時停止すると、スレッド ウィンドウには 7 ~ 8 スレッドしか表示されません。v2005 にバンドルされているリモート プロセス ビューアには、プロセスが 40 を超えるスレッドを使用していると表示されます。使用されるのを待っているのは、スレッドプールのスレッドだけだと思います。
ThreadPool 内の作業が完了し、スレッドがプールに解放されていることをテストするには、どのようなアプローチを使用できますか?
編集1
これは .NET Compact Framework のリモート パフォーマンス モニターから取得したもので、スレッド プールのスレッド数は 25 です。ただし、ビジュアル スタジオ自体で言ったように、25 スレッドではなく、約 7 または 8 しかありません。