有人知道我将如何完成以下任务吗?我一直在使用C#中的线程池,我觉得这不太适合它。
1. New Clients
2. Modified Clients.
3. No Change.
需要注意的是,将会有很多客户端,但是它们的任务应该执行得相当快,但是,我不想从一个客户端任务中创建一个死锁,需要更长的时间来处理。
提前感谢!
发布于 2011-03-29 07:19:56
不是像你那样使用“拉”模型,而是不可能使用“推送”模型吗?也就是说,使用事件而不是每x秒检查客户端状态。
如果不能这样做,可以使用线程池或窗口服务。
里亚娜
发布于 2011-03-29 07:35:26
我同意客户端启动操作的推送模型在长期运行时会更好地工作,这样服务器只能在实际有事情可做时才能工作,而不是不断地轮询所有客户端。
客户端可以将请求插入队列并由服务器处理它们。这样,您就可以控制服务器可以并行处理多少请求,而不需要它们相互干扰。
BlockingCollection是专门为这类工作而设计的.Net 4中引入的一个新类。这是一篇关于如何使用它的非常好的文章。如果您是.Net并行编码新手,您可能想要阅读整个系列,非常好的阅读。
GJ
https://stackoverflow.com/questions/5440379
复制相似问题