不断检查进程是否正在运行C#
我想通过如下方式查找进程的名称来确定进程是否已打开:不断检查进程是否正在运行C#,c#,timer,C#,Timer,我想通过如下方式查找进程的名称来确定进程是否已打开: Process[] proc = Process.GetProcessesByName("process name"); if (proc.Length != 0) { proccess_running = true; } else { process_running = false; } if (process_running == true) { statusBar1.Text = "Process is run
Process[] proc = Process.GetProcessesByName("process name");
if (proc.Length != 0)
{
proccess_running = true;
}
else
{
process_running = false;
}
if (process_running == true)
{
statusBar1.Text = "Process is running";
}
else
{
statusBar1.Text = "Process is not running";
}
然后在状态栏中向用户显示结果,如下所示:
Process[] proc = Process.GetProcessesByName("process name");
if (proc.Length != 0)
{
proccess_running = true;
}
else
{
process_running = false;
}
if (process_running == true)
{
statusBar1.Text = "Process is running";
}
else
{
statusBar1.Text = "Process is not running";
}
我试着把上面的内容放在一个计时器中,它给出了正确的结果,只是每次计时器滴答作响时文本都会闪烁
只有当bool(正在运行的进程)发生更改而不是计时器计时时,才有办法设置状态栏的文本吗?是否在窗体上启用了双缓冲?跳出框框思考。很好:)或者保持bool状态,每次都检查一下……很棒的解决方案!工作完全符合预期。@MitchWheat当然,保持
bool
会更快,但我认为这在我们的情况下并不重要,我想要一个更短的代码。(毕竟,我必须键入:-)。此外,保存的bool
可能会使逻辑更加复杂。例如,在开始时-它应该是false
还是true
?“例如,在开始时-它应该是false还是true”-它应该以与标签完全相同的方式进行计算,并将其设置为false,然后再检查它是否运行100%正确。@Mitchheat我的意思是如果我们依赖条件旧进程运行!=正在运行的进程
要显示文本,我们需要做一个技巧,第一次这样做。另一种方法是分割初始化和更新,但这有点麻烦。但无论如何,我想我们谈论的或多或少是同一件事。
var text = process_running ? "Process is running" : "Process is not running";
if (statusBar1.Text != text)
statusBar1.Text = text;