Joh*_*don 7 c# asynchronous timer
我想出了如何使用计时器重复普通方法,并且它工作正常.但是现在我必须在这个方法中使用一些异步方法,所以我不得不把它变成一个Task而不是一个普通的方法.这是我现在的代码:
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)
{
}
Run Code Online (Sandbox Code Playgroud)
我目前t.Elapsed +=在线路上收到错误,因为没有等待,但是如果我添加它,它只是表现为正常的func,并且给了我一个丢失的params错误.我如何使用相同的计时器但具有异步任务?
对于事件处理程序,您可以继续使用async void return类型.您的代码应如下所示:
public void Test()
{
Timer t = new Timer(5000);
t.AutoReset = true;
t.Elapsed += new ElapsedEventHandler(OnTimedEvent);
t.Start();
}
private async void OnTimedEvent(Object source, ElapsedEventArgs e)
{
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9304 次 |
| 最近记录: |