我有一个用于测试目的的控制台应用程序,如下所示:
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中是否可行吗?
答案 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.txt
在EndlessLoop
中检测到文件名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是否正在运行。