Mon*_*Zhu 4 c# events asynchronous timer async-await
我在这里和这里研究了asynch和await语法.理解使用情况确实很有帮助,但我在MSDN上找到了一个有趣的语法示例,我只是不明白.
问:有人可以向我解释这个System.Timers.Timer事件注册的语法与asynch await:为什么你可以使用async awaitlambda表达式中已有的关键字?
Timer timer = new Timer(1000);
timer.Elapsed += async ( sender, e ) => await HandleTimer();
private Task HandleTimer()
{
Console.WriteLine("\nHandler not implemented..." );
}
Run Code Online (Sandbox Code Playgroud)
问题2:
什么是两个参数sender和e好,如果他们不出现在HandleTimer方法?
ycs*_*sun 10
它为Elapsed事件赋予异步lambda timer.您可以通过这种方式理解异步lambda:首先,以下是lambda:
(sender, e) => HandleTimer()
Run Code Online (Sandbox Code Playgroud)
这个lambda HandleTimer同步调用.然后我们添加await以HandleTimer异步调用:
(sender, e) => await HandleTimer()
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为要异步调用某些东西,你必须自己异步,因此async关键字:
async (sender, e) => await HandleTimer()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2969 次 |
| 最近记录: |