在执行操作之前让我的程序等待一秒钟

时间:2016-07-12 13:31:27

标签: c#

我有类似的东西:

 private void Form1_Load(object sender, EventArgs e)
        {
            Hide();
            string ngdx = "*ngdx";
            string atdx = "*atdx";

            for (;;)
            {
                try
                {

                    string[] convertngdx = Directory.GetFiles("D:\\folder", ngdx);
                    string[] convertatdx = Directory.GetFiles("D:\\folder", atdx);


                    foreach (var convertngd in convertngdx)
                    {
                        File.Move(convertngd, Path.ChangeExtension(convertngd, ".ngd"));
                    }
                    foreach (var convertatd in convertatdx)
                    {
                        File.Move(convertatd, Path.ChangeExtension(convertatd, ".atd"));
                    }
                }
                catch
                {

                }
            }
        }

我启动了我的应用,每次.ngdx.atdx文件发送到folder时,它都会自动将其转换为.ngd.atd。< / p>

我的问题是它会立即转换它们,我希望它在转换之前等待一秒钟。

我使用了System.Threading.Thread.Sleep(1000);,但它似乎不起作用,我认为因为当我运行我的应用程序时调用了System.Threading.Thread.Sleep(1000);,然后在一秒之后再也没有调用它。

每次将新的.ngdx.atdx发送给folder时我都希望它在转换之前等待一秒钟。

1 个答案:

答案 0 :(得分:3)

作为使用无限for循环(将占用UI线程)的替代方法,您可以使用FileSystemWatcher。 (example