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();
        }
    }

c#如何在下一个方法调用之前停止/暂停执行

假设executeBAT使用System.Diagnostics.Process类启动BAT文件,您可以通过调用process.WaitForExit.

来等待该进程退出

如果您发布一些关于如何执行批处理文件的信息,那将非常有帮助!

否则请检查此处:如何等待我的批处理文件完成