我有一种情况,我需要运行一个存储过程(> 5 分钟)并希望我的(silverlight)应用程序保持“活动”
我使用异步 WCF 服务来使我的 UI 线程响应,至少在我再次从同一个数据库请求一些数据之前
然后,只有在 SP 完成后,才会执行其他请求
我可以以某种方式(我想在 SQL 中)将存储过程设置为能够与其他查询一起运行吗?
谢谢
编辑:
- 数据库位于 SQL Server 上
[OperationContract(AsyncPattern = true)]
在服务方法中从 Linq2Sql 模型启动 SP- 其他数据由 WCF Ria 服务处理(来自 Linq2SQL 模型的域服务,相同的连接字符串)
编辑2:
@dan1111:通过测试,我看到直到 WCF 服务将结果返回给 Silverlight 时,DomainContext '冻结'
最初:
- 我用 Thread.Sleep(15000) 调用 WCF 异步方法
- 应用程序继续运行良好
- 当我转到需要数据的页面时,我请求 DataContext.Load()
- DataContext.IsLoading 变为 true
- 我必须等待剩下的 15 秒
- 现在为先前的 DataContext.Load 触发了完成的事件
请告诉我你的意见