EventWaitHandle не работает кросс-процесс в Mono?

Я пытаюсь создать кросс-процесс EventWaitHandle в моно, и по какой-то причине он не находит дескриптор процесса сигнализации, я не нашел ничего в моно документации, указывающей, что он работает по-другому в Windows, вот простая программа, которую я написал чтобы проверить это:

  class Program
{
    private static EventWaitHandle _exitSignal;

    static void Main(string[] args)
    {

        if (args[0] == "1")
        {
            bool created;
            File.AppendAllText("log.txt",$"creating exit wait handle");
            _exitSignal = new EventWaitHandle(false, EventResetMode.ManualReset, "Test", out created);
            _exitSignal.WaitOne();
            _exitSignal.Close();
            _exitSignal.Dispose();
            File.AppendAllText("log.txt", $"Exiting");
        }
        else
        {
            EventWaitHandle result;
            if (EventWaitHandle.TryOpenExisting("Test", out result))
            {
                File.AppendAllText("log1.txt", $"Found Exit wait handle, signaling to stop");
                result.Set();
                result.Close();
                result.Dispose();
                File.AppendAllText("log1.txt", $"Exit signal sent");
            }
            else
            {
                File.AppendAllText("log1.txt", $"Could not find exit wait handle");
            }
        }
    }
}

по какой-то причине я получаю сообщение о том, что дескриптор не найден, когда я пытаюсь дать сигнал, кто-нибудь сталкивался с такой проблемой?

0 ответов

Другие вопросы по тегам