【发布时间】:2014-09-18 03:24:39
【问题描述】:
我正在尝试让我的主模块等待完成的方法。
看看下面的代码:
Public static void CheckAvailItem(IE browser)
{
for (int i = 0; i < 6; i++)
{
browser.CheckBox(Find.ById("PickUpItem" + i)).Checked = true;
}
}
该方法只是检查 6 个复选框。 WatIn 的问题是每个 Checkbox 的每次“检查”之间有大约 1 秒的延迟,问题是主程序一直在运行,并没有等待六个复选框被选中。
我试图通过使用异步编程来实现这一点,但我很难创建它。
我知道 Async 关键字介于“static”和“void”之间,但我不知道将“await”关键字放在哪里。我试着把它放在“浏览器”后面,但我知道它不应该在那里。
欢迎提出任何建议。
【问题讨论】:
-
为什么要让这个特定的方法异步?您期望从中获得什么?要了解
async-await的基础知识,请查看我的async-await general curation。 -
嗯,这个方法需要六秒钟才能完成。我不知道 WatIn 需要这么长时间来检查复选框。同时,其余代码继续执行,它不等待方法完成。我知道我可以做类似 Await Task.Delay(6000) 的事情,但时间会有所不同。我觉得有更好的方法来实现这一点。
-
你试过用
Task.Run吗? -
当复选框被选中时,你能以某种方式检测到吗? (任何事件或类似的东西)?
-
没错!我需要以某种方式检测复选框何时被选中。不知道WatIn有没有这种方法。
标签: c# asynchronous async-await watin