У меня есть настройка службы WCF для управления считывателем отпечатков USB из наших приложений .Net. Это прекрасно работает, и я могу попросить его зарегистрировать пользователей и так далее.WCF Асинхронная настройка обратного вызова для опробованного устройства
Читатель позволяет идентифицировать (он сообщает вам, что конкретный пользователь представил свой палец, а не просил его проверить наличие пальца конкретного пользователя), но устройство должно постоянно проверяться в режиме идентификации для его status - когда пользователь обнаружен, состояние изменяется.
Я хочу, чтобы заинтересованное приложение уведомляло службу, которую оно хочет знать, когда пользователь идентифицирован, и обеспечивает обратный вызов, который запускается, когда это произойдет. Служба 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 службы?