Минимальный пример генерирования async / await: «Вызывающий поток не может получить доступ к этому объекту, потому что другой поток владеет им». - PullRequest
0 голосов
/ 16 мая 2018

Я просмотрел документацию и различные примеры, но все они обсуждают вещи в контексте пользовательского интерфейса.

Я понимаю, что объекты, принадлежащие определенному потоку, не могут быть доступны другому потоку. Однако, в моем случае, я не понимаю, как это применимо (но, конечно, я делаю это как-то , я просто не могу определить это).

Код, над которым я работаю, довольно сложный, и я не могу воспроизвести минимальный рабочий пример.

Я хотел бы видеть минимальный рабочий пример использования async и await, где выбрасывается это исключение , поскольку я не могу его найти.

1 Ответ

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

С Асинхронное / ожидание - Лучшие практики асинхронного программирования

async Task MyMethodAsync()
{
  // Code here runs in the original context.
  await Task.Delay(1000);
  // Code here runs in the original context.
  await Task.Delay(1000).ConfigureAwait(
    continueOnCapturedContext: false);
  // Code here runs without the original context (in this case, on the thread pool).

  ////////////////
  // ETA: Put some UI code here and it will probably throw an exception.
}

Вот еще один пример получения исключения:

await Task.Run(()=>{ /* place your UI code here */});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...