Как и когда использовать «async» и «await»C#

Место общения программистов C#
Anonymous
Как и когда использовать «async» и «await»

Сообщение Anonymous »

Насколько я понимаю, одна из основных задач, которые делают async и await, — это упрощают написание и чтение кода, но эквивалентно ли их использование созданию фоновых потоков для выполнения длительной логики?< /p>

Сейчас я пробую самый простой пример. Я добавил несколько комментариев. Можете ли вы мне это разъяснить?

// I don't understand why this method must be marked as `async`.
private async void button1_Click(object sender, EventArgs e)
{
Task access = DoSomethingAsync();
// task independent stuff here

// this line is reached after the 5 seconds sleep from
// DoSomethingAsync() method. Shouldn't it be reached immediately?
int a = 1;

// from my understanding the waiting should be done here.
int x = await access;
}

async Task DoSomethingAsync()
{
// is this executed on a background thread?
System.Threading.Thread.Sleep(5000);
return 1;
}


Подробнее здесь: https://stackoverflow.com/questions/144 ... -and-await

Вернуться в «C#»