【发布时间】:2013-11-08 01:52:42
【问题描述】:
我们有一个 ASP.NET MVC 3 应用程序,它与 WCF 层交互以实现服务逻辑。在一项特定功能上,服务层需要很长时间才能响应,即 svc 上的 UI 超时。 处理本身是巨大的,因此必然需要更多时间。我们不希望用户看到超时,因此我们计划显示部分成功状态并不断更新 UI 状态。
我们计划将流程分成多个步骤,其中一些步骤有点一劳永逸。现在当用户请求详细信息时
Svc 处理强制步骤,返回响应
-
Svc 还使用以下 (TPL) 启动任务触发它,这会执行 非强制性步骤
Task.Factory.StartNew(FireAway); UI 不断轮询更新状态
任务在数据库中更新完成状态
UI 轮询和检索完成状态并在 UI 中显示
担忧...
- 处理任务的线程是否会被重用(未附加侦听器),这会导致线程创建过多或泄漏吗?
- 资源怎么样,Fire and forget tasks 会导致内存泄漏吗?任务功能是连接到多个数据库并更新状态。
- 我对设计不满意(我们必须尽快解决),还有更好的设计模式吗?
【问题讨论】:
-
来吧,伙计们,还没有回应....问题这么无聊吗?
-
我认为您没有向我们提供足够的信息来回答您的问题。是否发生泄漏取决于您的具体代码。
-
哎呀,我详细地添加了解释。关于泄漏的问题通常是 Fire and Forget 任务会产生任何泄漏?任务主要是更新数据库并连接到不同的系统。我更新了问题
-
任何关于它的示例代码,用于调用 WCF 服务(即发即弃)和错误处理?
标签: c# asp.net-mvc-3 wcf asynchronous task-parallel-library