Async modifier in C#
c#
Solution
Adding `async`, by itself, does nothing other than allow the method body to use the `await` keyword. A properly implemented async method won't block the UI thread, but an improperly implemented one most certainly can.
What you probably wanted to do was this:
async private void Button_Click_1(object sender, RoutedEventArgs e)
{
await Task.Delay(2000);
MessageBox.Show("All done!");
}
Problem
I have the question, what is the difference between these two methods? ``` async private void Button_Click_1(object sender, RoutedEventArgs e) { Thread.Sleep(2000); } private void Button_Click_2(object sender, RoutedEventArgs e) { Thread.Sleep(2000); } ``` Both of them block my UI. I know that I must start another thread to avoid blocking, but I have found: "An async method provides a convenient way to do potentially long-running work without blocking the caller's thread". I'm a bit confused.