我正在尝试在新线程上启动特定任务,但是我只想启动一次,并允许同一应用程序执行多次,但又不会启动此类任务。
到目前为止,我已经尝试过:
class Program {
private static EventWaitHandle s_event;
[STAThread]
static void Main(string[] args) {
bool canCreateTask = false;
try {
s_event = new EventWaitHandle(false, EventResetMode.ManualReset, "My Application", out canCreateTask);
} catch(Exception exception) {
Console.Write(exception.Message);
}
if (canCreateTask) {
//Create the specific task on a new thread
}
}
在下一种情况下可以正常工作:我第一次启动该应用程序,并且任务按预期方式启动,如果我再次启动该应用程序(不关闭第一个),则该任务无法启动也可以。
当我关闭第一个应用程序(正在运行第二个应用程序)并再次启动一个新应用程序时,问题就来了,任务没有按我的意愿启动。
我完全不确定是否可以使用EventWaitHandle做到这一点,或者我做错了什么。
我该如何实现?
谢谢!