题
我有一个WCF服务的设置来控制我们的.Net应用的USB指纹识别器。这工作得很好,我可以要求其登记用户等。
读取器允许标识(它告诉你特定用户已提出了他们的手指,而不是要求它验证特定用户的手指是存在的),但该设备必须不断轮询而在识别模式下其状态 - 当用户检测到状态的变化
我要的是一个有兴趣的应用,通知它想知道当一个用户被识别的服务,并提供当这一切发生的是被触发的回调。 WCF服务将立即返回并产生一个线程在后台不断地轮询设备。如果没有人试图登录该投票可能在一个时间持续好几个小时。
什么是达致这最好的方法是什么?我的服务合同当前被定义为如下:
[ServiceContract (CallbackContract=typeof(IBiometricCallback))]
public interface IBiometricWcfService
{
...
[OperationContract (IsOneWay = true)]
void BeginIdentification();
...
}
public interface IBiometricCallback
{
...
[OperationContract(IsOneWay = true)]
void IdentificationFinished(int aUserId, string aMessage, bool aSuccess);
...
}
在我BeginIdentification()
方法我可以很容易地生成一个工作线程轮询的设备,或者是更容易使WCF服务异步?
解决方案
我觉得这是更好地使WCF服务操作异步。这MSDN文章展示了如何做到这一点: http://msdn.microsoft.com /en-us/library/ms730059.aspx 。
不隶属于 StackOverflow