【发布时间】:2019-09-16 10:23:23
【问题描述】:
我有一个返回错误的函数的问题。
问题在于:return success 在实际运行之前: sucess = true 被命中,因为它是一个异步函数。
这个函数成功后如何返回 true?
public bool onefunction(ChromiumWebBrowser browser) {
bool success = false;
browser.GetMainFrame().EvaluateScriptAsync("someinfo").ContinueWith(t => {
if (t.IsFaulted == false) {
var response = t.Result;
if (response.Success) {
success = true;
}
}
});
//It returns false because this code runs before: "success = true"
return success;
}
【问题讨论】:
-
谢谢尼克,它是 C# 语言
-
函数完成后才能测试成功。由于您的默认设置为 FALSE,因此您得到了 FALSE,因为您在完成之前检查状态。
-
@jdweng 是的,这是我遇到的问题。我不知道我可以通过什么方式做到这一点?
-
你需要“一路异步”等待
EvaluateScriptAsync。 -
在
browser.GetMainFrame()....之前使用await。
标签: c# function asynchronous boolean