我有一个异步回调函数,它被传递到Timer(来自System.Threading)的构造函数中:
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);
有没有办法在Lambda中省略掉“o”参数?因为对于非异步情况,我可以将我的“handler”作为委托传递。
timer = new Timer(HandleTimerCallback, state, CommonConstants.InfiniteTimespan,
CommonConstants.InfiniteTimespan);
await Task.Delay(someValue)
,并在循环体中调用你的方法即可。 - spender