Windows窗体中的异步任务没有返回结果

本文关键字:返回 结果 任务 异步 窗体 Windows | 更新日期: 2023-09-27 17:53:25

有人能给我解释一下为什么这个代码不工作(结果没有分配给文本框的文本属性)

private async Task<string> NumToString(int num)
{
  return await new Task<string>(()=>{
     return  num.ToString();
     });
}

呼叫:

 private async void button2_Click(object sender, EventArgs e)
        {
           // TaskScheduler context = TaskScheduler.FromCurrentSynchronizationContext();
            var content = await NumToString(1);
          textBox1.Text = content;
        }

另外,如果我取消注释TaskScheduler行,点击事件被触发,但NumTostring(1)不触发。

Windows窗体中的异步任务没有返回结果

您应该启动任务,而不仅仅是创建它:

private Task<string> NumToString(int num)
{
    return Task.Run(() => num.ToString());
}