Я думал, что один из вопросов об async/await заключается в том, что когда задача завершается, продолжение выполняется в том же контексте, когда был вызван ожидание, что в моем случае было бы потоком пользовательского интерфейса.
Итак, например:
Debug.WriteLine("2: Thread ID: " + Thread.CurrentThread.ManagedThreadId);
await fs.ReadAsync(data, 0, (int)fs.Length);
Debug.WriteLine("3: Thread ID: " + Thread.CurrentThread.ManagedThreadId);
Я бы этого не ожидал:
2: Thread ID: 10
3: Thread ID: 11
Что дает? Почему идентификатор потока для продолжения отличается от потока пользовательского интерфейса?
В соответствии с этой статьей [^] мне нужно будет явно вызвать ConfigureAwait, чтобы изменить поведение контекста продолжения!