Как сделать два опроса работающих WPF? - PullRequest
0 голосов
/ 14 мая 2018
private async void InitialiseApp(object sender, RoutedEventArgs e)
{
    // The first two function run once
    await InitManifest();
    await InitResult();

    await UpdateManifest(_ManifestToken.Token);
    await UpdateResult(_ResultToken.Token);
}

public async static Task UpdateManifest(CancellationToken token)
{
    while (true)
    {
       await Task.Delay(45000);
    }
}   

Я нахожусь в ситуации, когда у меня есть два типа данных JSON.

Первый json (имеет несколько ссылок (объект)): {"name": "Link 1", "id": 22, "url": "link1.json"}

Второй JSON (имеет объект с несколькими людьми): { "Имя": "Джон", "возраст": 22, "класс": "MCA"}

Первый json содержит ссылки, содержащие вторые типы данных json.

Я хотел бы поместить имя всех ссылок в Listbox, и у меня есть второй «Список», который отображает данные выбранного элемента в первом «Списке».

Моя самая большая проблема заключается в том, что оба обновления json: первый будет опрашивать каждые 45 секунд, а второй ¬Listbox¬ опрашивать очень 15 секунд.

Я создал функцию, которая инициализирует данные обоих Listbox асинхронно, успешно. Но теперь я хотел бы обновить оба «Listbox» независимо, без блокировки в потоке пользовательского интерфейса. Я действительно вызываю два опроса, но я установил точку останова, и я понимаю, что код не доходит до второго опроса. Я понимаю, почему, но я не уверен, как обойти эту проблему.

1 Ответ

0 голосов
/ 14 мая 2018

Ну, вы await ваши задачи.Что означает, что вы ждете , пока они не закончат.И вы не хотите ждать, пока они закончат, потому что они никогда этого не сделают, так что не ждите их.Удалите ключевое слово await перед теми задачами, которые вы не хотите ждать.

Вы можете или не хотите иметь результирующие задачи как переменные, и вы можете сделать это, назначив результатметод к Task.

Ваша текущая проблема будет исправлена ​​удалением ключевого слова await из тех строк, которые вы не хотите ждать.Последуют другие проблемы, как это обычно бывает с многопоточностью в пользовательском интерфейсе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...