Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Cpu使用率100%,聊天服务器由线程C制成#_C#_Multithreading_Chat_Cpu - Fatal编程技术网

C# Cpu使用率100%,聊天服务器由线程C制成#

C# Cpu使用率100%,聊天服务器由线程C制成#,c#,multithreading,chat,cpu,C#,Multithreading,Chat,Cpu,我有一个聊天服务器​​使用线程,运行良好,我连接了5个客户端,但CPU使用率及时增加到100%!probe放了一个Thread.Sleep(30000),但没有解决问题,下面是连接新客户时的代码 public-void-listening() { //获取第一个网络设备的IP,但这在某些配置上可能不可靠 IPAddress IPADLOCAL=IPAddress; //使用服务器的IP和指定端口创建TCP侦听器对象 tlsClient=新的TcpListener(ipaLocal,1986年);

我有一个聊天服务器​​使用线程,运行良好,我连接了5个客户端,但CPU使用率及时增加到100%!probe放了一个Thread.Sleep(30000),但没有解决问题,下面是连接新客户时的代码

public-void-listening()
{
//获取第一个网络设备的IP,但这在某些配置上可能不可靠
IPAddress IPADLOCAL=IPAddress;
//使用服务器的IP和指定端口创建TCP侦听器对象
tlsClient=新的TcpListener(ipaLocal,1986年);
//启动TCP侦听器并侦听连接
tlsClient.Start();
//在检查连接之前,while循环将在此中检查true
ServRunning=true;
//启动承载侦听器的新踏板
thrListener=新螺纹(保持紧固);
thrListener.Start();
}
私有void KeepListening()
{
//当服务器运行时
while(ServRunning==true)
{
//接受挂起的连接
tcpClient=tlsClient.AcceptTcpClient();
//创建新的连接实例
连接newConnection=新连接(tcpClient);
睡眠(30000);
}
}
}
是一个阻塞调用,因此没有理由调用
线程。Sleep

AcceptTcpClient是一种阻塞方法,它返回一个TcpClient,可用于发送和接收数据


我认为您的100%CPU利用率问题可能在应用程序的其他地方。

使用异步版本的AcceptCpcClient,称为BeginAcceptCpcClient。带有代码示例的BeginAcceptTcpClient文档可用