簡體   English   中英

將事件發送到單個進程

[英]Send event to single process

我當前正在使用EventWaitHandle觸發本機進程的干凈關閉,該本機進程沒有Windows Forms應用程序中的窗口。 當我同時運行多個這些進程時,設置事件將停止所有這些進程。 有什么方法可以將事件發送到單個選定的進程? 我為它們每個保留一個Process變量。

EventWaitHandle Event = new EventWaitHandle(false, EventResetMode.ManualReset, "EventName");
Event.Set();

聽起來更像是您希望每個進程都有一個命名事件句柄。

您可以使用Process.Id獲取每個進程的唯一ID,並使用它為每個進程生成唯一的字符串。

由於進程ID是全局的,因此可以安全地假定兩個進程都可以正確使用該ID。

然后,您可以將此數字附加到諸如“ MyProcessEvent”之類的字符串上以給出“ MyProcessEvent6345615”。 然后使用該字符串在兩個進程中打開命名的EventWaitHandle

然后,您的控制器進程可以使用該名稱發信號通知它啟動的任何進程。

一個進程通過Process.GetCurrentProcess()找到自己的ID )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM