WCF Async configuration de rappel pour le dispositif sondé
-
18-09-2019 - |
Question
J'ai une configuration de service WCF pour contrôler un lecteur d'empreintes digitales USB de nos applications .Net. Cela fonctionne très bien et je peux lui demander de nous inscrire des utilisateurs et ainsi de suite.
Le lecteur permet d'identifier (il vous indique qu'un utilisateur particulier a présenté son doigt, plutôt que de lui demander de vérifier que le doigt d'un utilisateur particulier est présent), mais le dispositif doit être constamment sondé en mode d'identification pour son statut -. lorsqu'il détecte un utilisateur les changements d'état
Ce que je veux est une demande intéressée d'informer le service qu'il veut savoir quand un utilisateur est identifié, et de fournir un rappel qui se déclenche lorsque cela se produit. Le service WCF retourne immédiatement et frayer un fil en arrière-plan de sondage en continu du dispositif. Ce scrutin pourrait se poursuivre pendant des heures à un moment si personne ne tente de se connecter.
Quelle est la meilleure façon de acheive cela? Mon contrat de service est actuellement défini comme suit:
[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);
...
}
Dans ma méthode BeginIdentification()
je peux frayer facilement un thread de travail pour interroger le dispositif, ou est-il plus facile de faire le asynchrone service WCF?
La solution
Je pense qu'il est préférable de rendre l'opération de service WCF de manière asynchrone. Cet article MSDN montre comment le faire: http://msdn.microsoft.com /en-us/library/ms730059.aspx .