سؤال

هنا هي بلدي الافتراضات الأساسية:

  1. Wcf ينفذ الخدمة أساليب عملية في IOCP المواضيع (UnsafeQueueNativeOverlapped) بدلا من العادية ThreadPool المواضيع (QueueUserWorkItem).

  2. حجب I/O يجب أن لا أن يتم ذلك من داخل واحد-طريقة تشغيل خدمة الأساليب.

  3. حجب I/O يجب أن لا يكون ذلك داخل العادي ThreadPool الموضوع.

وأعتقد أن أفضل استراتيجية هي أن سلسلة المتزامن المكالمات.لذا ، إذا كنت تتلقى رسالة في اتجاه واحد خدمة العملية ثم القيام المتزامن الدعوة إلى db و عندما يكمل أقوم المقبل المتزامن db الدعوة ، وما إلى ذلك.وأخيرا الرد عبر بريدي wcf رد...

ومع ذلك ، من الصعب أن تفعل كل بيانات الاتصال المتزامن.لقد لجأت إلى كسر المادتين 2 و 3 أعلاه, ولكن أنا لا أحب ذلك لأنني أعتقد أن هذا سوف يموت جوعا ThreadPool في نهاية المطاف.هل هناك أي أفضل استراتيجيات ؟

لقد بحثت في استخدام جون السكيت هو CustomThreadPool, ولكن لست متأكدا إذا كان هذا هو الجواب أيضا.

هل كانت مفيدة؟

المحلول

أود أن أقترح كسر القاعدة 3 من يصطفون متزامن I/O يدعو ThreadPool لأداء.الخدمة الأساليب لا تزال العودة على الفور ، ولكن العمل في الخلفية في نهاية المطاف ، ربما مستهلا العودة الإخطار.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top