Windows窗体中的异步任务不会返回结果

时间:2014-03-25 17:28:29

标签: c# async-await

有人可以向我解释为什么此代码不起作用(结果未分配给文本框的文本属性)

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行,则会触发click事件,但NumTostring(1)不会触发。

1 个答案:

答案 0 :(得分:6)

您应该开始执行任务,而不仅仅是创建它:

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