C#在另一个控制台应用程序启动时暂停一个控制台应用程序

时间:2018-11-13 14:57:58

标签: c# process console console-application pause

我有一个用于测试目的的控制台应用程序,如下所示:

static void Main(string[] args)
{
    do
    {
        for (int i = 0; i < 10000000; i++)
        {
            Console.WriteLine("Doing some endless loop");
            Console.WriteLine(i.ToString());
        }
    } while (true);
}

如您所见,代码是非常基本的,为了进行测试,我将其设置为无限循环。

另一个控制台应用程序称为“ Updater”,一旦启动“ Updater”应用程序,我想暂停“ EndlessLoop”控制台应用程序。

有人知道这在c#.NET中是否可行吗?

2 个答案:

答案 0 :(得分:1)

2个应用程序之间不易通信

一个命题:启动控制台async runActions() { for (const action of Actions) { if(action.promptRequired) { const dialogRef = this.promptDialog.open(PromptDialogComponent, { data: {action: action, }, }); // await dialogRef.afterClosed(); } } const status = await this.httpService.getRequest('runAction', action) // Do Some Action based on status } } } 时,您将在文件夹Updater中创建一个文件。然后,如果您的控制台C:\Temps\token.txtEndlessLoop中检测到文件名token.txt,则暂停C:\Temps

答案 1 :(得分:1)

public static bool IsAppRunning()
{
    foreach (Process process in Process.GetProcesses())
    {
        if (process.ProcessName.Contains("Updater"))
        {
            return true;
        }
    }

    return false;
}

如果在while循环中调用它,它将告诉您Updater是否正在运行。