我目前有一个包含if语句的while循环:
if (s.Contains("mp4:production/CATCHUP/"))
尽管条件为真,当我尝试使用其他方法(如下所示的RemoveEXELog)时,我会收到“拒绝访问”的错误,因为进程正在使用文件“Command.bat”。
我该如何停止循环执行文件并运行其他方法?
private void CheckLog()
{
while (true)
{
Thread.Sleep(5000);
if (!System.IO.File.Exists("Command.bat")) continue;
using (System.IO.StreamReader sr = System.IO.File.OpenText("Command.bat"))
{
string s = "";
while ((s = sr.ReadLine()) != null)
{
if (s.Contains("mp4:production/CATCHUP/"))
{
RemoveEXELog(); // Deletes a specific keyword from Command.bat
Process p = new Process();
p.StartInfo.WorkingDirectory = "dump";
p.StartInfo.FileName = "test.exe";
p.StartInfo.Arguments = s;
p.Start();
ClearLog(); // Deletes Command.bat and then creates a new empty Command.bat
}
}
}
}
}