C# 分布式并行批处理

C# 分布式并行批处理,c#,.net,multithreading,c#-4.0,task-parallel-library,C#,.net,Multithreading,C# 4.0,Task Parallel Library,我正试图找出一个问题陈述的解决方案。为了简单起见,该应用程序将是一个控制台应用程序。一个数据库包含大约10000行。我需要开发一个c#应用程序,它将产生10个线程,每个线程将处理数据库中的5条记录。现在的问题是,我将在另一台机器上运行相同的应用程序。因此,我们有两个he应用程序实例,每个应用程序应处理5000行,并且它们不应在记录上重叠。我还需要一个中央控制器,它需要显示每个应用程序上运行的线程ID。这里的任何解决这个问题的指针都很好。我会在数据库中创建一个“处理状态”列,每个实例都会通过更改记

我正试图找出一个问题陈述的解决方案。为了简单起见,该应用程序将是一个控制台应用程序。一个数据库包含大约10000行。我需要开发一个c#应用程序,它将产生10个线程,每个线程将处理数据库中的5条记录。现在的问题是,我将在另一台机器上运行相同的应用程序。因此,我们有两个he应用程序实例,每个应用程序应处理5000行,并且它们不应在记录上重叠。我还需要一个中央控制器,它需要显示每个应用程序上运行的线程ID。这里的任何解决这个问题的指针都很好。

我会在数据库中创建一个“处理状态”列,每个实例都会通过更改记录的状态来标记它正在处理的记录

另一种解决方案是使用队列或ServiceBroker,每个实例将从公共队列中挑选一条消息来处理一条记录。这里需要另一个进程来填充队列


使用WCF在机器之间进行通信以同步工作是非常复杂和棘手的。我将在数据库中创建一个“处理状态”列,每个实例将通过更改记录的状态来标记它正在处理的记录

另一种解决方案是使用队列或ServiceBroker,每个实例将从公共队列中挑选一条消息来处理一条记录。这里需要另一个进程来填充队列


使用WCF在机器之间进行通信以同步工作是非常复杂和棘手的。我同意Jakub的观点。如果您希望单独的实例直接彼此通信,您应该阅读关于这两个问题的文章(http://en.wikipedia.org/wiki/Two_Generals%27_Problem)想一想你将如何设计一个没有种族的无障碍会合点。

我同意Jakub的观点。如果您希望单独的实例直接彼此通信,您应该阅读关于这两个问题的文章(http://en.wikipedia.org/wiki/Two_Generals%27_Problem)想想你将如何设计一个无种族的无障碍交会。

你将如何在机器之间进行通信,WCF似乎是一个合理的起点如何在计算机之间进行通信,WCF似乎是一个合理的起点如果他/她知道数据键是如何均匀分布的,他们还可以根据记录的ID在线程之间划分数据集。如果他/她知道数据键是如何均匀分布的,它们还可以根据记录的ID在线程之间划分数据集。