2010-03-08 61 views
2

我有一個WCF服務設置來控制我們的.Net應用程序中的USB指紋讀取器。這工作正常,我可以要求它註冊用戶等。WCF調查設備的異步回調設置

閱讀器允許識別(它告訴你一個特定的用戶已經展示了他們的手指,而不是要求它驗證一個特定用戶的手指存在),但是該設備必須在識別模式下持續輪詢狀態 - 當檢測到用戶時狀態改變。

我要的是一個有興趣的應用,通知它想知道當一個用戶被識別的服務,並提供當這一切發生的是被觸發的回調。 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服務異步?

回答