以下のアプリケーションがあります。
- その Windows コンソール .NET 3.0 アプリケーション
- 20 個のワークロードを作成し、それらをスレッドプールに割り当てて処理しています。
- ThreadPool の各スレッドは、WCF クライアントを作成し、割り当てられたワークロードを使用して作成された要求でサービスを呼び出します。
実稼働サーバー [12 コア マシン] で、次の例外が発生することがあります。
WCF クライアントを使用して操作を呼び出しているときに、タイプ 'xyz' を反映するエラーが発生しました。これは、すべてのスレッドに表示され始めます。しばらくすると、突然消え、再び現れ始めます。
コード:
疑似コード:
for(int i=0;i<20;i++)
{
MultiThreadedProcess proc =new MultThreadedProcess(someData[i]);
ThreadPool.QueueUserWorkItem(proc.CallBack,i);
}
Class MultiThreadedProcess では、次のようなことを行います。
public void Callback(object index)
{
MyServiceClient client = new MyServiceClient();
MyServiceResponse response =client.SomeOperation(new MyServiceRequest(proc.SomeData));
client.close();
//Process Response
}
誰でもこの問題の解決策を提案できますか?