从类外部调用一些异步方法时获取异常

时间:2015-03-17 10:34:18

标签: asp.net .net c#-5.0

假设我有类似x和y的类,就像这样

class x
{
    public x()
    {
         p();
    }
    private async p()
    {
      await q();
    }
    private async p()
    {
     //some logic is there  
    }
}

在test.aspx.cs文件中

我正在尝试创建此类的实例

            x object =new x();

当我运行这个时,我在运行时得到一个异常说:

  

此时无法启动异步操作。异步操作只能在异步处理程序或模块中启动,或者在页面生命周期中的某些事件中启动。如果在执行页面时发生此异常,请确保将页面标记为<%@ Page Async =" true" %取代。此异常也可能表示尝试调用" async void"方法,在ASP.NET请求处理中通常不受支持。相反,异步方法应该返回一个Task,调用者应该等待它。

任何机构可以解释我为什么吗?

1 个答案:

答案 0 :(得分:1)

我找到了解决方案(就是我按照@Richard给出的指示)

并将Async="true"添加到我的aspx页面的页面标记(看起来像<%@ Page %>的那个)

它有效!