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

时间:2015-12-22 19:54:54

标签: c# batch-file

我是C#的新手,希望得到一些指导。 - 我正在编写一个程序,当xml文件被放入文件夹时执行.bat文件,然后将xml文件移动到完成目录。

问题是bat文件需要大约10秒才能运行并且需要XML文件存在于目录中,但是,我的move方法是在执行.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();

        }

    }

2 个答案:

答案 0 :(得分:1)

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

否则请点击此处:How to wait until my batch file is finished

答案 1 :(得分:1)

假设executeBAT使用System.Diagnostics.Process类启动BAT文件,您可以通过调用Process.WaitForExit让它等待该进程退出。