C#多线程概念问题
有人知道我将如何完成下面的任务吗?我一直在玩C#中的线程池,我觉得这不适合它C#多线程概念问题,c#,.net,multithreading,thread-safety,C#,.net,Multithreading,Thread Safety,有人知道我将如何完成下面的任务吗?我一直在玩C#中的线程池,我觉得这不适合它 启动应用程序 检查是否有新客户机>客户机有需要完成某些工作的项目 在执行任务之前解析客户端请求。现在应该排队等待检查 每(时间间隔示例:30秒)>执行任务检查一次每个客户端 同时,我必须重复步骤2-3,因为我希望: 新客户 修改客户端 没有变化 重要的是要注意,将会有很多客户机,但是他们的任务应该执行得相当快,但是,我不想从一个客户机任务创建一个死锁,这需要花费更长的时间来处理 提前谢谢 不要像您那样使用“拉”模型,
Riana我同意,从长远来看,客户端发起操作的推送模式会更好地工作,这样服务器只需要在实际有事情要做时工作,而不是连续轮询所有客户端 客户机可以将请求插入到队列中,服务器处理这些请求。这样,您就可以控制服务器可以并行处理多少请求,而不会干扰teachother 是.NET4中引入的一个新类,专门为此类工作而设计。这是一篇关于如何使用它的非常好的文章。如果您是.Net并行编码新手,您可能希望阅读整个系列,非常好的阅读
GJ谢谢,我会记住这一点。我如何解决这个问题,必须重复步骤2-3,并在每个圣诞节继续处理客户端任务。我认为BlockCollection是个好主意,我昨晚看到了这个。我不会轮询客户机,而是客户机将工作放入队列。然后服务器完成工作并通过回调将结果发送回。你用什么进行通信,WCF?我现在只是在.net 4.0中使用命令提示符,但它最终将作为服务运行。不,我的意思是客户端如何与服务器通信?因为他们,;如果处于不同的进程中,他们需要某种方式与服务器通信,那么您使用什么方式呢?(Sockets、WCF、MPI等?)这决定了当请求的结果完成时,如何让服务器回调到cleint。否则客户端应该轮询服务器或其他东西。我正在使用PDH.dll处理对性能数据的调用,因此这就是我与客户端通信的方式。我同意我不喜欢依赖EventResetArg。