簡體   English   中英

c#如何在下一個方法調用之前停止/暫停執行

[英]c# How to stop/pause execution before the next method call

我是C#的新手,希望對此有一些指導。 -我正在編寫一個程序,當將xml文件放入文件夾中時,該程序正在執行.bat文件,然后將xml文件移動到完成的目錄中。

問題是bat文件需要大約10秒鍾才能運行,並且要求目錄中存在XML文件,但是,我的move方法是在執行.bat file命令后立即移動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使其等待該進程退出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM