1
我想出瞭如何使用定時器重複常規方法,並且它工作正常。但是現在我不得不在這個方法裏面使用一些異步方法,所以我不得不使它成爲一個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)
{
}
我目前在t.Elapsed +=
線得到一個錯誤,因爲沒有任何的await,但如果我添加它,它只是充當如果它是一個正常的FUNC,和給我一個缺少的參數錯誤。我將如何使用這個相同的計時器,但與異步任務?
'OnTimedEvent'是一個事件處理程序。這是允許'async void'的一個例外。將該方法更改爲'async void'並等待其中的異步任務。然而'Test'方法不是異步的。 – Nkosi
另請參閱[1200+](https://stackoverflow.com/search?q=%5Bc%23%5D+async+event+handler)其他已解決此問題的相關問題。 –