作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
让大类完全异步兼容是个好主意还是应该使用其他方法?
理解示例:
AsyncValidateUserInput.cs
public async Task<TaskStateHelper> CheckSiteIsReachable()
public async Task<TaskStateHelper> VerifyCertificate()
public async Task<TaskStateHelper> TestAccount()
{
#DoStuff
await exchangeAccount.FetchAccountInformation
#DoStuff
await exchangeAccount.GetAccountBalance
#DoStuff
}
GetAccountBalance 基于 AccountManager 类:
AccountManager.cs
public async Task<decimal> GetAccountBalance()
{
#DoStuff
await FooAPI.GetAccountBalanceAsync()
}
FooAPI.cs
public async Task<Dictionary<string, decimal>> GetAccountBalanceAsync()
{
var queryResult = await QueryPrivateAsync("Balance");
#DoStuff
}
private async Task<Stream> QueryPrivateAsync(string method, Dictionary<string, string> param = null)
{
#DoStuff
await postStream.WriteAsync(postData);
#DoStuff
await ReadFromStreamAsync(webResponse.GetResponseStream());
#DoStuff
}
另一种方法是简单地创建一个任务。
result = await Task.Factory.StartNew(exchangeAccount.GetAccountBalance);
我使用的异步规则兼容吗?
谢谢你的时间
最佳答案
是的,无论大小如何,制作任何应该是 Async 的东西通常是个好主意。本文可能有所帮助:https://msdn.microsoft.com/en-us/magazine/jj991977.aspx
关于c# - 异步 : What practices in large classes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46786406/
我是一名优秀的程序员,十分优秀!