我有異步回調,這是傳遞到定時器(從的System.Threading)構造函數:通異步回調到Timer構造
private async Task HandleTimerCallback(object state)
{
if (timer == null) return;
if (asynTaskCallback != null)
{
await HandleAsyncTaskTimerCallback(state);
}
else
{
HandleSyncTimerCallback(state);
}
}
和定時器:
timer = new Timer(async o => await HandleTimerCallback(o), state, CommonConstants.InfiniteTimespan,
CommonConstants.InfiniteTimespan);
有什麼辦法省略那個o
param在lambda?原因不-異步我可以通過我的handler
爲代表
timer = new Timer(HandleTimerCallback, state, CommonConstants.InfiniteTimespan,
CommonConstants.InfiniteTimespan);
這真的沒有意義做定時器和異步/等待這一混合。如果你想在async/await世界中使用定時器行爲,只需在循環體內的某處使用'await Task.Delay(someValue)'循環,並從循環體調用你的方法。 – spender