gpt4 book ai didi

c# - 如何等待 Timer 完成然后从函数返回?

转载 作者:太空狗 更新时间:2023-10-29 22:26:13 28 4
gpt4 key购买 nike

我想等待计时器完成,然后从函数返回。我试过这个:

while(timer1.Enabled)
{
Application.DoEvents();
}
return value;

但它并没有起作用,函数在计时器真正结束之前就返回了。这是完整的功能:

System.Windows.Forms.Timer timer1 = new System.Windows.Forms.Timer();
int[] foo()
{

do_something1();

int[] some_value;

timer1.Interval = 1000;
timer1.Tick += new EventHandler(delegate(object o, EventArgs ea)
{
if (browser.ReadyState == WebBrowserReadyState.Complete)
{
timer1.Stop();
baa(some_value);
}
});
timer1.Start();

while (timer1.Enabled)
{
Application.DoEvents();
}

return some_value;
}

最佳答案

我认为您真正想要的是等待浏览器准备就绪。如果是这样,您可以使用这样的循环,而不是 Application.DoEvents() 我建议使用 async/await特点:

while(browser.ReadyState != WebBrowserReadyState.Complete)
{
// you need to make your method async in order to use await
await Task.Delay(1000);
}
// do your job

或者更好的是你可以处理 DocumentCompleted WebBrowser 的事件。

关于c# - 如何等待 Timer 完成然后从函数返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26875056/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com