Domanda

Ho una configurazione servizio WCF per controllare un lettore di impronte digitali USB dalle nostre applicazioni .NET. Questo funziona bene e posso chiedere a registrare gli utenti e così via.

Il lettore permette l'identificazione (ti dice che un particolare utente ha presentato il dito, invece di chiedere di verificare che il dito di un particolare utente è presente), ma il dispositivo deve essere costantemente interrogato durante la modalità di identificazione per il suo status -. quando un utente viene rilevato i cambiamenti di stato

Quello che voglio è per un'applicazione interessati per notificare il servizio che si vuole sapere quando si identifica un utente, e di fornire un callback che viene attivato quando questo accade. Il servizio WCF tornerà immediatamente e genera un thread in background per il polling continuo del dispositivo. Questa interrogazione potrebbe andare avanti per ore alla volta, se non si tenta di accedere a.

Qual è il modo migliore per raggiungere questo obiettivo? Il mio contratto di servizio è attualmente definito come segue:

[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);
    ...
}

Nel mio metodo BeginIdentification() posso facilmente generare un thread di lavoro per interrogare il dispositivo, o è più facile fare l'asincrona servizio WCF?

È stato utile?

Soluzione

Credo che sia molto meglio fare l'operazione del servizio WCF in modo asincrono. In questo articolo di MSDN mostra come farlo: http://msdn.microsoft.com /en-us/library/ms730059.aspx .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top