سؤال

لدي برنامج إعداد خدمة WCF للتحكم في قارئ بصمات الأصابع USB من تطبيقات .NET الخاصة بنا. هذا يعمل بشكل جيد ويمكنني أن أطلب منه تسجيل المستخدمين وما إلى ذلك.

يسمح القارئ بالتحديد (يخبرك أن مستخدم معين قد قدم إصبعهم، بدلا من طرحه من التحقق من أن إصبع مستخدم معين موجود)، ولكن يجب استطلاع الجهاز باستمرار أثناء وضع تحديد الهوية لحالته - عندما تم اكتشاف المستخدم تغييرات الحالة.

ما أريده هو تطبيق مهتم لإخطار الخدمة التي تريد أن تعرف متى يتم تحديد مستخدم، وتوفير رد اتصال يتم تشغيله عند حدوث ذلك. ستعود خدمة 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