【发布时间】:2015-03-17 19:18:20
【问题描述】:
假设我有这样的类 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();
当我运行这个时,我在运行时得到一个异常说:
此时无法启动异步操作。异步操作只能在异步处理程序或模块内或在页面生命周期中的某些事件期间启动。如果在执行页面时发生此异常,请确保将页面标记为 。此异常还可能表示尝试调用“async void”方法,在 ASP.NET 请求处理中通常不支持该方法。相反,异步方法应该返回一个任务,调用者应该等待它。
谁能解释我为什么?
【问题讨论】:
-
您是否按照消息中的说明将该页面标记为异步? (以及异常的类型是什么?)
-
代码好像不是ASP.NET,但错误信息是。你怎么称呼这段代码?
-
@Richard 不,事实上我没有,而且我什至不知道如何操作,因为我是新手(全新//今天才开始)
-
阅读异常的文本:它告诉你如何。
-
@Patrick Hofman 是的,你实际上是在写我正在写一个包装类之类的东西,它将在 asp.net 页面中使用......上面的代码只是为了描述我的情况......我对问题进行了一些修改