在这个功能中,我正在检查游戏是否正在运行。
如果它正在运行我正在启动backgroundworker
。
然后在timer2
中,我一直在检查进程是否正在运行,直到我退出游戏。
但是我不想让它继续检查它是否正在运行并一次又一次地启动backgroundworker
......
所以在一方面我希望timer2
将一直运行该功能,直到我退出游戏另一方面我不希望它一直启动backgroundworker
。 / p>
private void wichProcessIsrun()
{
Process[] pname = Process.GetProcessesByName("BFBC2Game");
if (pname.Length == 0)
{
Logger.Write("Battlefield Bad Company 2 Ended");
}
else
{
Logger.Write("Battlefield Bad Company 2 Started");
backgroundWorker1.RunWorkerAsync();
}
}
private void timer2_Tick(object sender, EventArgs e)
{
wichProcessIsrun();
}
答案 0 :(得分:2)
你应该有一个bool
变量,你应该在开始这个过程时设置它,在检查过程中,只检查它的值,如果它是true
而不是你不应该开始{{1} }}。
修改强>
您应该检查进程是否在结束之前已经启动。您应该将已启动的变量放在backgroundworker
子句中,而不是仅在进程运行一段时间后才会记录。
if