C# 控制多个线程的好方法

C# 控制多个线程的好方法,c#,vb.net,multithreading,C#,Vb.net,Multithreading,我有一个MDI WinForms应用程序,可以执行多个任务。每个任务都作为后台工作人员运行 控制运行线程的好方法是什么: 检查特定线程是否正在运行 停止特定线程 例如,不可能同时运行同一个任务 我可能需要一个单独的类来存储isTaskRunning变量 这样做的好方法是什么 TIA您可以采取的一种方法是为每个任务创建一个类。然后让该类执行任务。它将知道是否可以同时使用多个任务,并限制对每个任务的访问。因此: public class LongUploadTask { private bo

我有一个MDI WinForms应用程序,可以执行多个任务。每个任务都作为后台工作人员运行

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

  • 检查特定线程是否正在运行
  • 停止特定线程
例如,不可能同时运行同一个任务

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

这样做的好方法是什么


TIA

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

public class LongUploadTask
{
  private bool isRunning;


  public void Execute()
  {
    if(!isRunning)
    {
       //etc...
    }
  }
}

注意,如果您是从多个线程访问它,那么我省略了锁定代码,我认为您不是。此外,如果您希望异步执行此任务,可以使用异步委托和手动重置事件来实现BackgroundWorker正在做的事情。

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

public class LongUploadTask
{
  private bool isRunning;


  public void Execute()
  {
    if(!isRunning)
    {
       //etc...
    }
  }
}

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

我也会这样做:)我也会这样做:)