1
我有一个可以执行多个任务的MDI WinForms应用程序。每个任务都以backgroundWorker的形式运行。具体线程是否正在运行 控制多个线程的好方法
- 检查:
什么是控制正在运行的线程的好办法?
例如,应该不可能同时运行相同的任务。
可能是我需要一个单独的类,我可以存储isTaskRunning变量?
如何做到这一点的好方法?
TIA
我有一个可以执行多个任务的MDI WinForms应用程序。每个任务都以backgroundWorker的形式运行。具体线程是否正在运行 控制多个线程的好方法
什么是控制正在运行的线程的好办法?
例如,应该不可能同时运行相同的任务。
可能是我需要一个单独的类,我可以存储isTaskRunning变量?
如何做到这一点的好方法?
TIA
您可以采取的一种方法是为每个任务创建一个类。然后让这个班级执行任务。它会知道是否可以一次使用多个任务,并限制对每个任务的访问。因此:
public class LongUploadTask
{
private bool isRunning;
public void Execute()
{
if(!isRunning)
{
//etc...
}
}
}
请注意,如果您正在从多个线程访问这个,我不认为你是。此外,如果您想异步执行此操作,则可以使用异步委派和手动重置事件来实现BackgroundWorker正在执行的操作。
这就是我将如何做到这一点:) – 2009-04-20 12:05:50