private async void PeriodicLoadMessages(object obj) { CancellationToken token = (CancellationToken)obj; while (true) { if (token.IsCancellationRequested) { break; } // load messages every await viewModel.LoadMessagesAsync(); await Task.Delay(TimeSpan.FromMilliseconds(1000)); } }