Асинхронный метод блокирует поток пользовательского интерфейса, в котором он выполняетсяC#

Место общения программистов C#
Ответить
Anonymous
 Асинхронный метод блокирует поток пользовательского интерфейса, в котором он выполняется

Сообщение Anonymous »

Рассмотрите следующие коды в 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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