Ich habe asynchroner Rückruf, die in Timer (von System.Threading) übergeben wird Konstruktor:Pass asynchroner Rückruf zu Timer-Konstruktor
private async Task HandleTimerCallback(object state)
{
if (timer == null) return;
if (asynTaskCallback != null)
{
await HandleAsyncTaskTimerCallback(state);
}
else
{
HandleSyncTimerCallback(state);
}
}
Und Timer:
timer = new Timer(async o => await HandleTimerCallback(o), state, CommonConstants.InfiniteTimespan,
CommonConstants.InfiniteTimespan);
Gibt es eine Möglichkeit auszulassen dass o
param in Lambda? Ursache für nicht-Asynchron kann ich nur passieren mein handler
als Delegierter
timer = new Timer(HandleTimerCallback, state, CommonConstants.InfiniteTimespan,
CommonConstants.InfiniteTimespan);
Es ist wirklich keinen Sinn macht diese Vermischung von Timer zu tun und Asynchron/await. Wenn Sie Timer-Verhalten in async/await world haben möchten, machen Sie einfach eine Schleife mit einem 'wait Task.Delay (someValue)' irgendwo im Schleifenkörper und rufen Sie Ihre Methode auch vom Schleifenkörper auf. – spender