gpt4 book ai didi

c# - 请解释定时器事件异步/等待语法

转载 作者:太空狗 更新时间:2023-10-30 00:02:39 24 4
gpt4 key购买 nike

我研究了异步和等待语法 herehere .它确实有助于理解用法,但我在 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 方法中没有出现这两个参数 sendere 有什么用?

最佳答案

它将异步 lambda 分配给 timerElapsed 事件。你可以这样理解异步lambda:首先,下面是一个lambda:

(sender, e) => HandleTimer()

此 lambda 同步调用 HandleTimer。然后我们添加一个 await 来异步调用 HandleTimer:

(sender, e) => await HandleTimer()

但这行不通,因为要异步调用某些东西,您自己必须是异步的,因此 async 关键字:

async (sender, e) => await HandleTimer()

关于c# - 请解释定时器事件异步/等待语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37679480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com