1

我有一个创建n个线程的应用程序。每个线程负责通过 TCP 套接字与系统交互,并将状态(是否在线,系统中的其他数据)更新到数据库以及返回到根据数据在网格中填充/更新的 UI。

当线程数增加时,UI 进入非响应模式。要求是所有线程都应该并行执行,以便状态更新没有延迟。如果我使用 ThreadPool 可能会导致状态更新延迟。任何帮助表示赞赏

4

2 回答 2

0

我建议您WorkQueue为 UI 创建自己的,所有其他线程将Enqueue进入该队列并继续其工作。

然后使用System.Windows.Forms.Timer具有一定间隔的 a 并相应地处理排队的事件。UI 将响应。

于 2013-10-10T09:09:42.627 回答
-2

您可以尝试在命名空间中使用任务并行库System.Threading.Tasks。它比使用线程或线程池更多地利用 CPU 并为您提供更好的结果。要更新 UI,您必须使用Dispatcher.

请通过以下链接了解并行任务,

http://msdn.microsoft.com/en-us/library/dd537609(v=vs.100).aspx

编辑:

Action -  delegate or method that has to be done parallely

 Parallel.Invoke(Action, Action,....);
于 2013-10-10T08:52:23.870 回答