C# socket服务器端 多线程客户端 如何少量使用CPU

C# socket服务器端 多线程客户端 使用了 while来接收客户端连接 连接成功后 开启另一个线程 使用while循环来接收socket消息 当开启两个线程后服务端 占用CPU特高 基本无法操作
最新回答
江湖正好

2024-09-21 16:47:28

1)开启的线程设置为后台线程
Thread t = new Thread(你的线程函数);
t.IsBackground = true
2)建议你利用socket提供的异步回调 socket.BeginXXXXX() socket.EndXXXX 来实现
多线程
处理
-----------
利用异步回调最大的好处是:(1)可以充分利用.net framework 的
线程池
中I/O线程,最大限度降低CPU处理开销。曾经做过处理1000多个socket TCP客户端连接的程序,双核CPU平均占用不超过12%(2)网络通信过程各种异常是不可避免的,异步编程结构很容易实现异常处理。
萌面人

2024-09-21 15:32:45

如果是短连接,数据接收完整立即释放socket,如果长连接就用异步socket
野港

2024-09-21 04:40:56

33333333333
小承诺≈′

2024-09-21 04:11:03

异步调用。