الفئة <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 . |
أعضاء المثيل
العضو |
الوصف |
---|---|
يحدث عندما ينتج عن تنفيذ العميل استثناء. |
|
ترجع عدد الرسائل التي لم تتم معالجتها في قائمة انتظار الرسائل الخاصة بالعميل. |
|
رفع استثناء من نوع "مهلة" إذا لم يتم تلقي رسالة في مقدار الوقت هذا. لا يتم استخدام أية مهلة بشكل افتراضي. |
|
يحدث عندما ينتج عن تنفيذ العميل استثناء. |
|
نشر رسالة إلى قائمة انتظار الرسائل من MailboxProcessor ، بشكل غير متزامن. |
|
تقوم بنشر رسالة لعميل و انتظار رد على القناة ، بشكل غير متزامن. |
|
تقوم بنشر رسالة لعميل و انتظار رد على القناة ، بشكل متزامن. |
|
مثل AsyncPostAndReply ، ولكن لا تقوم بإرجاع أى شىء إذا لم يكن الرد ضمن المهلة. |
|
انتظار رسالة. هذا سوف يستهلك الرسالة الأولى في ترتيب الوصول. |
|
يحدث عندما ينتج عن تنفيذ العميل استثناء. |
|
يقوم بالفحص بحثًا عن رسالة وذلك بالبحث خلال الرسائل بترتيب وصولها حتى يقوم scanner بإرجاع قيمة من نوع Some. تظل الرسائل الأخرى في قائمة الانتظار. |
|
يبدأ تشغيل العامل. |
|
مثل PostAndReply ، ولكن لا تقوم بإرجاع أى شىء إذا لم يكن الرد ضمن المهلة. |
|
انتظار رسالة. هذا سوف يستهلك الرسالة الأولى في ترتيب الوصول. |
|
يقوم بالفحص بحثًا عن رسالة وذلك بالبحث خلال الرسائل بترتيب وصولها حتى يقوم scanner بإرجاع قيمة من نوع Some. تظل الرسائل الأخرى في قائمة الانتظار. |
أعضاء ثابتة
العضو |
الوصف |
---|---|
إنشاء و بدء عميل. دالة: 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