我找到了如何使用计时器重复一个普通方法,并且它运行良好。但现在我必须在这个方法内部使用一些异步方法,所以我不得不将其改为一个任务而不是一个普通方法。这是我目前的代码:
public async Task Test()
{
Timer t = new Timer(5000);
t.AutoReset = true;
t.Elapsed += new ElapsedEventHandler(OnTimedEvent);
t.Start();
}
private async Task OnTimedEvent(Object source, ElapsedEventArgs e)
{
}
我目前在t.Elapsed +=
这行代码上遇到了一个错误,因为没有await关键字,但如果我添加上去,它会像普通函数一样运行,并给我一个缺少参数的错误。我该如何使用相同的计时器,但带有异步任务?
OnTimedEvent
是一个事件处理程序。这是允许使用async void
的一个例外情况。将该方法改为async void
,并在其中等待您的异步任务。然而,Test
方法不是异步的。 - Nkosi