我正在尝试使用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;
}
答案 0 :(得分:1)
似乎您正在使用asp.net。如果是这样,您应该了解Page lifecycle。当您的任务完成时,页面可能已经处理完毕并且响应已经返回给客户端。所以,即使你的代码会被执行,那时候也没有任何意义。