我是WCF的新手,直到现在我知道我可以使用WCF服务的方法并返回一些值,但我想知道我是否使用 backgroundworker 而我想发送完成后给客户端的“工作完成”这样的消息,我该怎么做?
我应该使用AutoResetEvent并等待后台工作,直到完成resetEvent.Set()
,让主线程上的方法返回消息?
我需要该线程不要忙,它应该准备好我从客户端请求的任何其他命令。所以任何想法?
答案 0 :(得分:1)
我已经弄清楚了,我无法在不调用方法的情况下从服务中发回消息,但是当我将服务行为的属性从ConcurrencyMode = ConcurrencyMode.Single
更改为ConcurrencyMode = ConcurrencyMode.Multiple
时,它已经多线程化了结果 :
由于这个属性,该方法在一个新线程中运行,我可以在该线程正在工作时发送其他请求,当它完成时,它返回消息/结果。
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple, InstanceContextMode = InstanceContextMode.PerSession)]
public class FileManagerService : IFileManager