0

如何在时间到期后调用方法

public void tMetro(string url)
          {
              tm.Stop();
              tm.Interval = 5000;
              tm.Start();
              method_8(url, "");
              if (wb.Url.AbsoluteUri == url)
                  wb.Stop();
          }

但不是在事件 Timer_tick

private void timer1_Tick(object sender, EventArgs e)
        {
            tm.Stop();
            wb.Stop();
        }

已尝试通过Thread.Sleep()应用程序冻结

不知道该怎么办。需要你的帮助

4

2 回答 2

0

最常见的方法是在Timer Thread中调用您的函数。

Timer 线程构造函数有一个变体,它接受 4 个参数:

public Timer(
    TimerCallback callback, // The function to be called
    Object state, // Any parameter passed to that function
    TimeSpan dueTime, // Delay before executing the function, this is what you want
    TimeSpan period // Set this to -1 if you want your function to be executed once.
)

线程处理可能很难处理,但在消耗远程资源时它是首选方法。这样您就可以避免冻结您的主框架。

于 2012-10-10T20:18:07.283 回答
0

尝试这个

var thread = new Thread(() => {
    Thread.Sleep(5000); tm.Stop(); wb.Stop();
});
thread.Start();
于 2012-10-10T20:55:33.713 回答