0

我正在 WCF Web 服务中进行一些耗时的文件操作,所以在此调用完成之前,我无法从我的应用程序进行任何其他服务调用。

所以我计划使用 TPL

  Task.Factory.StartNew(() =>
            {                    
                CheckFileandCopy(path,fileName);
            });

它可以工作,并返回 true,但问题是,完成的事件没有实际结果,因为进程在单独的线程中运行,所以没有得到实际的完成事件,一旦任务完成,我如何返回完成事件完成,以及如何在调用耗时方法时进行并发调用

4

1 回答 1

0

你基本上有两个选择:

  • 异步调用客户端。如果您生成包含异步方法的代理(例如,请参阅此 msdn 页面,这将很容易。
  • 使事情异步,服务器端。这与您在示例中所做的类似。唯一缺少的是带有实际结果的回调。为此,您可以使用双工方案,其中客户端能够接收来自服务的调用,就像客户端也是服务一样。请注意,并非所有场景/绑定都支持这一点。

在这两种情况下,阅读这篇关于会话和并发的 msdn 文章可能有助于理解事情。

于 2012-09-20T12:13:38.427 回答