async Task RefreshAnnotations(int msInterval, CancellationToken cancellationToken) { try { if (msInterval == 0) { await Task.Delay(Timeout.Infinite, cancellationToken).ConfigureAwait(false); } else { while (!cancellationToken.IsCancellationRequested) { await Task.Delay(msInterval, cancellationToken).ConfigureAwait(false); _camera.SetAnnotateSettings(); } } } catch (OperationCanceledException) { // disregard token cancellation } }