亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 ProcessExecution 按順序啟動 2 個應用程序

使用 ProcessExecution 按順序啟動 2 個應用程序

C#
Helenr 2023-07-22 16:56:48
我想啟動2個相關的應用程序。首先,我想啟動我的“服務”應用程序,然后啟動我的“客戶端”應用程序。它并不能始終如一地發揮作用。有時客戶端啟動太快而最終無法連接到服務。有人可以告訴我哪里需要更改代碼才能正常工作并且只有在服務完全啟動后才啟動客戶端嗎?public class Program{public static void Main(string[] args){    Console.WriteLine("Starting Service");    StartService();    if (IsServiceRunning())    {        Console.WriteLine("Starting Client");        StartClient();    }    Console.ReadLine();}private static void StartClient(){    ProcessStartInfo startInfo = new ProcessStartInfo()    {        WorkingDirectory = @"C:\Client",        FileName = "Client.exe"    };    Process.Start(startInfo);}private static bool IsServiceRunning(){    Console.WriteLine("Check to see is running...");    Process[] pname = Process.GetProcessesByName("MyCommonService");    int runningCheck = 0;    if (pname.Length == 0 || runningCheck < 10)    {        Console.WriteLine("Did not find the process. Check again...");        runningCheck += 1;        Thread.Sleep(250);        IsServiceRunning();    }    Thread.Sleep(1000);    return true;}private static void StartService(){    Console.WriteLine("Starting Service");    ProcessStartInfo startInfo = new ProcessStartInfo()    {        WorkingDirectory = @"C:\Service",        FileName = "MyCommonService.exe"    };    Process.Start(startInfo);}}
查看完整描述

1 回答

?
慕哥6287543

TA貢獻1831條經驗 獲得超10個贊

看起來這始終取決于服務“完全啟動”所需的時間。如果服務需要執行網絡操作才能“完全啟動”,您可能無法保證服務何時“完全啟動”。您可以使用進程間通信,而不是簡單地等待 3,500 毫秒。

2 個 C# 進程之間進行進程間通信的最簡單方法是什么?

基本思想是讓您的服務進程與您的程序進行通信,如果它返回一個顯示服務已啟動的字符串,則僅啟動您的客戶端進程。


查看完整回答
反對 回復 2023-07-22
  • 1 回答
  • 0 關注
  • 137 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號