簡體   English   中英

C#等待進程啟動

[英]C# wait for process to start

我有2個程序(客戶端和服務器)使用ipc進行通信。 基本上,客戶端在服務器上發送一些數據,它們在同一台計算機上工作。 我希望客戶端等待服務器進程啟動,如果它還沒有啟動但不太明白如何實現這一點。 我想到使用2個事件(一個是我的客戶端創建的,一個是由服務器創建的),並且包含兩個調用以在臨界區中等待這些事件。 你會建議什么?

IPC如何運作? 我假設有NamedPipes,但這個想法對我來說是一樣的。 我過去不得不做類似的事情並大致做到這一點:

  • 客戶端啟動,連接到IPC服務器(假設NamedPipes。無所謂)

  • 連接失敗,客戶端通過觸發服務器啟動來恢復(這可以通過多種方式處理,從執行服務器二進制文件從已知位置到使用觸發器啟動服務

  • 服務器啟動並作為首先聲稱IPC地址之一(或者如果您更喜歡那個地址的全局互斥體)。 如果從多個客戶端啟動多個服務器進程,則第一個客戶端獲勝,而其他客戶端再次死亡。

  • 客戶在適當的時間后重試

暫無
暫無

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

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