【发布时间】:2016-06-07 12:31:32
【问题描述】:
我研究了 asynch 和 await 语法 here 和 here。它确实有助于理解用法,但我在 MSDN 上发现了一个有趣的语法示例,我只是不明白。
问题:
有人可以向我解释这个带有异步等待的System.Timers.Timer 事件注册的语法:
为什么可以在 lambda 表达式中使用 async await 关键字?
Timer timer = new Timer(1000);
timer.Elapsed += async ( sender, e ) => await HandleTimer();
private Task HandleTimer()
{
Console.WriteLine("\nHandler not implemented..." );
}
问题 2:
如果HandleTimer方法中没有出现sender和e这两个参数有什么用?
【问题讨论】:
-
它只是一个使用 lambda 语法声明的匿名方法。它也恰好是异步的。你对哪一部分感到困惑?
-
我认为 lambda 语法让我感到困惑
-
人们能否解释一下反对票以避免将来发生这种情况?
-
人们喜欢很快就加入赞成/反对票。不过,我以后会说,试着解释一下你不明白的确切。字面意思是表达式的哪一部分。
标签: c# events asynchronous timer async-await