我正在看另一位开发人员的这些代码行:
bool isValid = await engine.GetTaskByIdAsync(taskId);
if(isValid )
....
当我使用async
操作时,它将在异步操作完成的同时做独立的工作:
Task<bool> task = engine.GetTaskByIdAsync(taskId);
//Do work that doesn't need the "task" variable
bool completed = await task;
if(bool)
....
似乎第一个示例启动了异步操作,然后立即开始等待。我不明白这里有什么价值吗?
注意:此代码位于应用程序的数据访问层中,因此它不与用户界面交互。
我不明白这里有什么价值吗?
绝对-这意味着尽管您需要操作返回的值才能进行更多工作,但是在等待线程时不会占用线程。如果您要编写GUI,那特别重要,因为绑定GUI线程基本上意味着冻结UI。
听起来您正在关注异步的“并行执行多项操作”,这很重要,但远非唯一的好处。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句