我对返回以下值的函数有疑问:
问题是:返回成功运行在实际的: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;
}
答案 0 :(得分:4)
“一路异步”-方法:
public async Task<bool> onefunction(ChromiumWebBrowser browser) {
bool success = false;
try
{
var response = await browser.GetMainFrame().EvaluateScriptAsync("someinfo");
succes = response.Success;
}
catch( Exception ex )
{
// TODO: Write Errorlog
}
return success;
}
注意:这意味着您也需要更改调用代码。如果您不能这样做,请告知。我们将为这种情况找到解决方案。