c#如何在下一个方法调用之前停止/暂停执行
本文关键字:执行 暂停 调用 下一个 方法 | 更新日期: 2023-09-27 18:27:50
我是C#的新手,希望能得到一些指导。-我正在编写一个程序,当一个xml文件被放入文件夹中,然后将该xml文件移动到done目录时,该程序正在执行一个.bat文件。
问题是,bat文件运行大约需要10秒,并且需要XML文件存在于目录中,然而,我的移动方法是在执行.bat文件命令后立即移动XML文件,从而迫使.bat文件本身失败。
经过研究,Thread.Sleep或Task.Delay将是答案,因为我只想在.bat文件完成时暂停执行方法,然后执行movefile方法,但在调用MoveFilesCompleted.MoveComp().之前,我似乎无法掌握/使执行短暂停止
这是我所知道的,但希望得到任何建议。。
private void _fileWatcher_Created(object sender, FileSystemEventArgs e)
{
FileInfo f = new FileInfo(e.FullPath);
if (f.Extension.Equals(".xml") || f.Extension.Equals(".XML"))
{
Logger.log(String.Format("File Created: Path: {0}, Name: {1}", e.FullPath, e.Name));
try
{
exBat.executeBAT();
}
catch (Exception ex)
{
Logger.log(String.Format("Running the XMLtoINF SQLload failed."));
}
Thread.Sleep(15000);
MoveFilesCompleted.MoveComp();
}
}
假设executeBAT
使用System.Diagnostics.Process
类启动BAT文件,您可以通过调用process.WaitForExit.
如果您发布一些关于如何执行批处理文件的信息,那将非常有帮助!
否则请检查此处:如何等待我的批处理文件完成