【问题标题】:The good way to control several threads控制多个线程的好方法
【发布时间】:2009-04-20 11:53:35
【问题描述】:

我有一个可以执行多项任务的 MDI WinForms 应用程序。每个任务都作为 backgroundWorker 运行。

控制运行线程的好方法是什么:

  • 检查特定线程是否正在运行
  • 停止特定线程?

例如,不能同时运行同一个任务。

我可能需要一个单独的类来存储 isTaskRunning 变量吗?

如何做到这一点的好方法?

TIA

【问题讨论】:

    标签: c# vb.net multithreading


    【解决方案1】:

    您可以采取的一种方法是为每个任务创建一个类。然后让那个班级执行任务。它将知道是否可以一次使用多个任务,并限制对每个任务的访问。因此:

    public class LongUploadTask
    {
      private bool isRunning;
    
    
      public void Execute()
      {
        if(!isRunning)
        {
           //etc...
        }
      }
    }
    

    请注意,如果您从多个线程访问它,我将省略锁定代码,我认为您不是。此外,如果您想异步执行此操作,您可以使用异步委托和手动重置事件来实现 BackgroundWorker 正在执行的操作。

    【讨论】:

    • 我也会这样做:)
    猜你喜欢
    • 1970-01-01
    • 2020-11-06
    • 2016-12-26
    • 1970-01-01
    • 2018-11-18
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多