Итак, у меня есть следующий код
private async void button1_Click(object sender, EventArgs e)
{
await DoSomethingAsync();
MessageBox.Show("Test");
}
private async Task DoSomethingAsync()
{
for (int i = 0; i < 1000000000; i++)
{
int a = 5;
}; // simulate job
MessageBox.Show("DoSomethingAsync is done");
await DoSomething2Async();
}
private async Task DoSomething2Async()
{
for (int i = 0; i < 1000000000; i++)
{
int a = 5;
} // simulate job
MessageBox.Show("DoSomething2Async is done");
}
Пока оба MessageBoxes не показаны, основной поток является блоком (я имею в виду, что само приложение заморожено). Очевидно, что-то не так с моим кодом, и я не могу понять, что. Я никогда раньше не использовал async/await. это моя первая попытка.
EDIT:
Фактически, что я хочу сделать, это запустить асинхронное выполнение DoSomethingAsync
, чтобы при нажатии кнопки MessageBox.Show("Test");
выполнялся, даже если DoSomethingAsync является неполным.