【发布时间】:2014-03-30 03:09:29
【问题描述】:
如果我需要调用一个方法,而该方法又在内部调用某个异步方法,作为触发后忘记操作,我该如何防止此调用强制“异步”需要用完调用堆栈才能说。 ..一个 MVC 控制器?
例如:我的 MVC 控制器(非异步)调用业务层方法,该方法又调用 Windows Azure 服务总线 QueueClient.SendAsync(BrokeredMessage),将消息放入队列,但不需要等待让它完成。
通常情况下,当调用此控制器操作时,编译器会抛出此时无法启动异步操作的错误。
我知道不是等待或只是调用 SendAsync() 方法,我可以用 ContinueWith() 跟进它,以便在异步操作的回调上执行代码,但有人告诉我这不是正确的解决方案。 (参见Calling async method in controller的回复)
有人愿意告诉我解决这种情况的最佳方法吗?并告诉我为什么 ContinueWith() 方法不正确?
【问题讨论】:
标签: c# asp.net-mvc asynchronous task-parallel-library servicebus