2009-04-20 56 views
1

我有一个可以执行多个任务的MDI WinForms应用程序。每个任务都以backgroundWorker的形式运行。具体线程是否正在运行 控制多个线程的好方法

  • 停止特定线程

    • 检查:

      什么是控制正在运行的线程的好办法?

    例如,应该不可能同时运行相同的任务。

    可能是我需要一个单独的类,我可以存储isTaskRunning变量?

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

    TIA

  • 回答

    1

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

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

    请注意,如果您正在从多个线程访问这个,我不认为你是。此外,如果您想异步执行此操作,则可以使用异步委派和手动重置事件来实现BackgroundWorker正在执行的操作。

    +0

    这就是我将如何做到这一点:) – 2009-04-20 12:05:50