未在任务上执行的操作
本文关键字:操作 执行 任务 | 更新日期: 2023-09-27 18:11:50
我正在尝试使用aysnc/await,并且我在通过步骤1时遇到麻烦。当我运行下面的代码时,我的期望是"myMethod"将被调用并传递"Bob",然后"Hello Bob"将在页面上显示。当我运行它时,什么也没有发生。我调试了一下,"myMethod"没有被调用。
我错过了什么?
protected void Page_Load(object sender, EventArgs e)
{
Task.Factory.StartNew(() => myMethod("Bob")).ContinueWith(t => Label1.Text = t.Result, TaskScheduler.FromCurrentSynchronizationContext());
}
public string myMethod(string name)
{
Thread.Sleep(2000);
return "Hello " + name;
}
似乎你正在使用asp.net。如果是这样,您应该了解Page生命周期。此时,当您的任务即将完成时,页面可能已经被处理并且响应已经返回给客户端。因此,即使您的代码将被执行,它在那一刻也没有任何意义。