クライアントサーバーアプリケーションをテストする必要があります。いくつかのポートでサーバーを実行しており、サーバーに接続する約2000のクライアントを作成する必要があります。このために私は、アプリケーションをチェックしているが、例外System.OutOfmemory
for loop of Main method
中に発生ここで次のコードスレッドを作成中にシステムがメモリ不足になる
class Program
{
/// <summary>
/// Sample client code that makes gRPC calls to the server.
/// </summary>
public static void Main(string[] args)
{
for (int i = 0; i <= 2000; i++)
{
CalThread cThread = new CalThread(i);
} // Exception Raised Here
}
}
class CalThread
{
public CalThread(int clientID)
{
Thread thread = new Thread(() => getDataFromServer(clientID));
thread.Start();
}
public void getDataFromServer(int clientID)
{
try
{
//Channel channel = new Channel("192.168.0.123:50051", ChannelCredentials.Insecure);
while (true)
{
//Some code to connect to server and fetch data
Thread.Sleep(15000);
}
}
catch (Exception ex)
{
Thread.Sleep(15000);
Console.WriteLine(ex.Message);
}
}
}
を使用してC#アプリケーションで2000件のスレッドを作成しようとしています。この例外が発生したときにのみ110 MB
メモリを消費?
なぜC#の番号でスレッドを作成できません。 私もThread Pool
を試しましたが、動作していません...
私は 'ThreadPool'を使ってそれを行うことができました –