c#制作一个延迟器,但仍然可以打开表单

时间:2013-11-15 19:20:35

标签: c#

每当我尝试时,

和我的c#程序:

System.Threading.Thread.Sleep(#);

与延迟号

一样

它有效,但每当它“延迟”(我猜这就是它所谓的)我无法让我的表单从任务栏弹出我的屏幕,几乎就像重新打开它(?)。有人可以帮我制作一个不会“冻结”表格的帖子吗?谢谢! 所以,是的,我已经尝试了

System.Threading.Thread.Sleep(#);

但是这只是冻结了表格:/谢谢你 哦顺便说一句,这是c#

2 个答案:

答案 0 :(得分:0)

您可以使用Timer来延迟操作。

示例:

Timer timer = new Timer(10000);
timer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
timer.Start();

10000 MS后,将调用以下方法:

   private static void OnTimedEvent(object source, ElapsedEventArgs e)
    {
        //DoSomething
    }

答案 1 :(得分:0)

听起来像是在追求背景工作者。这将允许您保留主表单,但在另一个线程上执行一些时间处理。由于您没有针对您的问题发布任何特定代码,因此我会在MSDN

上找到更大范例的代码段。
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
    {
        BackgroundWorker worker = sender as BackgroundWorker;

        for (int i = 1; i <= 10; i++)
        {
            if (worker.CancellationPending == true)
            {
                e.Cancel = true;
                break;
            }
            else
            {
                // Perform a time consuming operation and report progress.
                System.Threading.Thread.Sleep(500);
                worker.ReportProgress(i * 10);
            }
        }
    }