문제

.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 서비스를 비동기로 만들기가 더 쉬운가요?

도움이 되었습니까?

해결책

WCF 서비스 작업을 비동기 적으로 만드는 것이 훨씬 낫다고 생각합니다. 이 MSDN 기사는 다음을 수행하는 방법을 보여줍니다.http://msdn.microsoft.com/en-us/library/ms730059.aspx.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top