Рассмотрите следующие коды в Winform. Когда я нажал кнопку, я ожидал, что асинхронный метод не должен блокировать поток пользовательского интерфейса, в котором он выполнялся.
Однако я обнаружил, что кнопка зависла во время вызова асинхронного метода...
Если это правда, то в чем смысл асинхронного метода? Я в замешательстве.
namespace WindowsFrmAsyn
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
async private void button1_Click(object sender, EventArgs e)
{
int contentlength = await AccessTheWebAsync();
tbResult.Text =
string.Format("Length of the downloaded string: {0}.", contentlength);
Debug.WriteLine(tbResult.Text);
}
async Task AccessTheWebAsync()
{
Debug.WriteLine("Call AccessTheWebAsync");
Thread.Sleep(5000);
Debug.WriteLine("Call AccessTheWebAsync done");
tbResult.Text = "I am in AccessTheWebAsync";
return 1000;
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/252 ... -executing