Polled DeviceのWCF Asyncコールバックセットアップ
-
18-09-2019 - |
質問
.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.
所属していません StackOverflow