您好我是新手,在异步方法中使用 async 和等待,
我希望将page_load
中发生的几个调用称为异步调用。
这是代码..
protected void Page_Load(object sender, EventArgs e)
{
string UrlData = ReadAsync().Result;
//continuation code..
}
protected async Task<string> ReadAsync(object sender, EventArgs e)
{
Task<string> T = getFinalValue();
await T;
return T.Result;
}
protected async Task<string> getFinalValue(object sender, EventArgs e)
{
//my code to create string
return "created string";
}
和
1.i需要了解这种方法是否正确?
2.在同步方法中使用ReadAsync().Result
是正确的还是导致其他任何问题?
3.我之间需要ReadAsync
方法来提供此服务,还是可以直接在getFinalValue
内使用page_load
以及如何使用它?
4.我可以将page_load
保持为同步还是异步?哪个更好?
任何回复都会有所帮助。
答案 0 :(得分:2)
经典ASP.NET使用异步并不能很好地发挥作用,你需要将它改为像......
protected void Page_Load(object sender, EventArgs e)
{
RegisterAsyncTask(new PageAsyncTask(ReadAsync));
}
protected async Task ReadAsync()
{
string UrlData = await getFinalValue();
//continuation code..
}
protected async Task<string> getFinalValue()
{
//my code to create string
return "created string";
}
请参阅Scott Hanselman关于此主题的帖子......