Я следил за этим блогом Стивена Клири, и мне было интересно, как лучше всего обновить существующую коллекцию, привязанную к пользовательскому интерфейсу, который обновляется каждые 15 секунд?Например, я могу очистить список, а затем добавить новую коллекцию для создания нового объекта?
Я задаю этот вопрос, потому что когда я добавил эту строку кода Task taskA = Task.Run(() => UpdateManifest(_ManifestToken.Token));
, мой ЦП быстро увеличивался.
C #:
// Ctor.
public ManifestViewModel()
{
_ManifestItems = new NotifyTaskCompletion<ObservableCollection<ManifestItem>>(FetchData());
Task taskA = Task.Run(() => UpdateManifest(_ManifestToken.Token));
}
private NotifyTaskCompletion<ObservableCollection<ManifestItem>> _ManifestItems;
public NotifyTaskCompletion<ObservableCollection<ManifestItem>> ManifestItems
{
get => _ManifestItems;
set
{
if (_ManifestItems != value)
{
_ManifestItems = value;
OnPropertyChanged();
}
}
}
public static Task UpdateManifest(CancellationToken token)
{
while (true)
{
_ManifestItems = new NotifyTaskCompletion<ObservableCollection<ManifestItem>>(FetchData());
Task.Delay(15000);
}
}