configurazione callback WCF asincrona per il dispositivo di polling
-
18-09-2019 - |
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?
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 .