C# 线程池中的线程数不足
我有一个作为中间人的应用程序。它从多台机器获取数据,并通过套接字转发到客户端机器。每次收到数据时,都会创建新线程并将数据发送到客户端。池中的可用线程一度变为零,应用程序停止工作。我甚至尝试使用ThreadPool.QueueUserWorkItem 这是创建新线程的函数C# 线程池中的线程数不足,c#,threadpool,C#,Threadpool,我有一个作为中间人的应用程序。它从多台机器获取数据,并通过套接字转发到客户端机器。每次收到数据时,都会创建新线程并将数据发送到客户端。池中的可用线程一度变为零,应用程序停止工作。我甚至尝试使用ThreadPool.QueueUserWorkItem 这是创建新线程的函数 public void SendFeed(string data, string Key) { Datadelegate _ProcessData = new Datadelegate(ProcessData);
public void SendFeed(string data, string Key)
{
Datadelegate _ProcessData = new Datadelegate(ProcessData);
Form1.countEQ = Form1.countEQ + 1;
TCPListenerForm.DataClass sObj = new TCPListenerForm.DataClass();
sObj.DataByte = data;
sObj.Key = Key;
try
{
_ProcessData.BeginInvoke(sObj, completedCallback, null);
}
catch (Exception ex)
{
}
}
看起来你有一个bug,你的线程没有终止。或者您正在创建太多太多的线程…我也尝试过使用threadpool,它管理线程终止。在我的应用程序中,发生了第二种情况,在这种情况下接收到大量数据时,应用程序挂起并最终停止工作。我需要一个可以处理大量数据的解决方案。你的线程真的完成了吗?我从未在高线程应用程序中遇到过这种情况。。。