未在任务上执行操作

时间:2016-10-06 21:03:51

标签: c# async-await

我正在尝试使用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;
    }

1 个答案:

答案 0 :(得分:1)

似乎您正在使用asp.net。如果是这样,您应该了解Page lifecycle。当您的任务完成时,页面可能已经处理完毕并且响应已经返回给客户端。所以,即使你的代码会被执行,那时候也没有任何意义。