الفئة <Control.MailboxProcessor<'Msg

عامل معالجة الرسالة الذي ينفيذ عملية حسابية غير متزامنة.

مساحة الاسم/مسار الوحدة النمطية: Microsoft.FSharp.Control

التجميع: FSharp.Core (في FSharp.Core.dll)

[<Sealed>]
[<AutoSerializable(false)>]
type MailboxProcessor<'Msg> =
 class
  interface IDisposable
  new MailboxProcessor : (MailboxProcessor<'Msg> -> Async<unit>) * ?CancellationToken -> MailboxProcessor<'Msg>
  member this.Post : 'Msg -> unit
  member this.PostAndAsyncReply : (AsyncReplyChannel<'Reply> -> 'Msg) * int option -> Async<'Reply>
  member this.PostAndReply : (AsyncReplyChannel<'Reply> -> 'Msg) * int option -> 'Reply
  member this.PostAndTryAsyncReply : (AsyncReplyChannel<'Reply> -> 'Msg) * ?int -> Async<'Reply option>
  member this.Receive : ?int -> Async<'Msg>
  member this.Scan : ('Msg -> Async<'T> option) * ?int -> Async<'T>
  member this.Start : unit -> unit
  static member Start : (MailboxProcessor<'Msg> -> Async<unit>) * ?CancellationToken -> MailboxProcessor<'Msg>
  member this.TryPostAndReply : (AsyncReplyChannel<'Reply> -> 'Msg) * ?int -> 'Reply option
  member this.TryReceive : ?int -> Async<'Msg option>
  member this.TryScan : ('Msg -> Async<'T> option) * ?int -> Async<'T option>
  member this.add_Error : Handler<Exception> -> unit
  member this.CurrentQueueLength :  int
  member this.DefaultTimeout :  int with get, set
  member this.Error :  IEvent<Exception>
  member this.remove_Error : Handler<Exception> -> unit
 end

ملاحظات

يقوم العميل بتغليف قائمة انتظار رسائل يعتمد كتّاب متعددة و عميل قارئ واحد. كتّاب إرسال رسائل للعامل بإستخدام إسلوب النشر الخاصة به و تبايناته. قد ينتظر العميل الرسائل بإستخدام أساليب التلقي أو TryReceive أو المسح الضوئي من خلال كافة الرسائل المتوفرة باستخدام أسلوب المسح أو TryScan.

Th هو نوع هو باسم FSharpMailboxProcessorفي تجميع.NET. في حالة الوصول إلى النوع من لغة.NET خلاف F#، أو من خلال الانعكاس، قم باستخدام هذا الاسم.

جهات الإنشاء

العضو

الوصف

جديد

إنشاء عميل. دالة: body تستخدم في إنشاء عملية حسابية غير متزامنة يتم تنفيذها بواسطة العميل. هذه الدالة لا يتم تنفيذها حتى يتم استدعاء Start .

أعضاء المثيل

العضو

الوصف

add_Error

يحدث عندما ينتج عن تنفيذ العميل استثناء.

CurrentQueueLength

ترجع عدد الرسائل التي لم تتم معالجتها في قائمة انتظار الرسائل الخاصة بالعميل.

DefaultTimeout

رفع استثناء من نوع "مهلة" إذا لم يتم تلقي رسالة في مقدار الوقت هذا. لا يتم استخدام أية مهلة بشكل افتراضي.

خطأ

يحدث عندما ينتج عن تنفيذ العميل استثناء.

Post

نشر رسالة إلى قائمة انتظار الرسائل من MailboxProcessor ، بشكل غير متزامن.

PostAndAsyncReply

تقوم بنشر رسالة لعميل و انتظار رد على القناة ، بشكل غير متزامن.

PostAndReply

تقوم بنشر رسالة لعميل و انتظار رد على القناة ، بشكل متزامن.

PostAndTryAsyncReply

مثل AsyncPostAndReply ، ولكن لا تقوم بإرجاع أى شىء إذا لم يكن الرد ضمن المهلة.

استلام

انتظار رسالة. هذا سوف يستهلك الرسالة الأولى في ترتيب الوصول.

remove_Error

يحدث عندما ينتج عن تنفيذ العميل استثناء.

Scan

يقوم بالفحص بحثًا عن رسالة وذلك بالبحث خلال الرسائل بترتيب وصولها حتى يقوم scanner بإرجاع قيمة من نوع Some. تظل الرسائل الأخرى في قائمة الانتظار.

Start

يبدأ تشغيل العامل.

TryPostAndReply

مثل PostAndReply ، ولكن لا تقوم بإرجاع أى شىء إذا لم يكن الرد ضمن المهلة.

TryReceive

انتظار رسالة. هذا سوف يستهلك الرسالة الأولى في ترتيب الوصول.

TryScan

يقوم بالفحص بحثًا عن رسالة وذلك بالبحث خلال الرسائل بترتيب وصولها حتى يقوم scanner بإرجاع قيمة من نوع Some. تظل الرسائل الأخرى في قائمة الانتظار.

أعضاء ثابتة

العضو

الوصف

Start

إنشاء و بدء عميل. دالة: body تستخدم في إنشاء عملية حسابية غير متزامنة يتم تنفيذها بواسطة العميل.

الأنظمة الأساسية

Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2

معلومات الإصدار

وقت التشغيل #F

معتمد في: 2.0, 4.0

Silverlight

معتمد في: 3

راجع أيضًا:

موارد أخرى

مساحة الاسم Microsoft.FSharp.Control