【发布时间】:2009-12-08 11:07:51
【问题描述】:
我在 C# 中使用 TcpClient 类。
每次有新的tcp连接请求,通常的做法是创建一个新线程来处理它。并且主线程应该可以随时终止这些处理程序线程。
我对每个处理程序线程的解决方案如下:
1 Check NetworkStream's DataAvailable method
1.1 If new data available then read and process new data
1.2 If end of stream then self terminate
2 Check for terminate signal from main thread
2.1 If terminate signal activated then self terminate
3 Goto 1.
这种轮询方法的问题在于,所有这些处理程序线程都将占用大量处理器资源,尤其是在这些线程数量巨大的情况下。这使得它非常低效。
有更好的方法吗?
【问题讨论】:
-
我不小心点击了那个选项,无法改回来!!!
标签: c# tcp polling tcpclient terminate