Я прочитал много статей и все еще не могу понять эту часть.
Рассмотрим этот код:
private async void button1_Click(object sender, EventArgs e)
{
await Dosomething();
}
private async Task<string> Dosomething()
{
await Task.Run((() => "Do Work"));
return "I am done";
}
Первый вопрос:
Когда я нажимаю кнопку, он вызывается DoSomething и ждет Task, который создает Thread из потока thread, вызывая Task.Run(если я не ошибаюсь), и все это выполняется асинхронно. Итак, я добился создания потока, который выполняет мою работу, но делает это асинхронно? Но учтите, что мне не нужен какой-либо результат, я просто хочу, чтобы работа была выполнена без получения какого-либо результата, действительно ли нужно использовать async/await, и если да, то как?
Второй вопрос:
При запуске потока асинхронно, как это работает? Он работает на основном пользовательском интерфейсе, но на отдельном потоке или работает на отдельном потоке и раздельно асинхронно внутри этого метода? Я, возможно, испортил разницу между асинхронными методами и потоками, поэтому, пожалуйста, расскажите мне обо мне.