C# 工作线程中的多个移动操作和数据进程

C# 工作线程中的多个移动操作和数据进程,c#,multithreading,C#,Multithreading,主线程-->启动工作线程-->启动阶段(获取数据处理的位置列表)-->移动到一个位置-->数据采样-->数据采集-->数据分析-->数据采样-- 基本上,工作线程对一个位置执行数据采样-->数据采集-->数据分析-->数据采样-->循环,直到获得按下停止或目标 我的问题是: 在工作线程完成一个位置的循环后,它将自行结束 现在如何使工作线程在完成一个位置的工作后移动到下一个位置进行数据处理循环,直到所有位置的数据处理完成后才会结束 提前谢谢 将所有位置排成一个ConcurrentQueue 在一

主线程-->启动工作线程-->启动阶段(获取数据处理的位置列表)-->移动到一个位置-->数据采样-->数据采集-->数据分析-->数据采样--

基本上,工作线程对一个位置执行数据采样-->数据采集-->数据分析-->数据采样-->循环,直到获得按下停止或目标

我的问题是:

在工作线程完成一个位置的循环后,它将自行结束

现在如何使工作线程在完成一个位置的工作后移动到下一个位置进行数据处理循环,直到所有位置的数据处理完成后才会结束

提前谢谢

  • 将所有位置排成一个ConcurrentQueue
  • 在一个位置的末尾,让workerthread从ConcurrentQueue中取出一个新位置并对其进行处理。这可以是一个简单的while循环
  • 如果出列失败,则不再有位置,线程将退出

为什么您不能在数据处理部分周围设置一个循环以前进到下一个“位置”?都在工作线程中。此外,是否会有多个工作线程在不同的“位置”上工作?如果涉及多个线程,则需要更多的工作。需要更多信息。为此,他至少需要了解同步的基础知识。这是“死鹦鹉问题”