使用可以执行多个的应用程序启动一次特定线程

时间:2019-04-02 20:28:44

标签: c#

我正在尝试在新线程上启动特定任务,但是我只想启动一次,并允许同一应用程序执行多次,但又不会启动此类任务。

到目前为止,我已经尝试过:

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做到这一点,或者我做错了什么。

我该如何实现?

谢谢!

0 个答案:

没有答案