Async.AsBeginEnd < 'وسيطة،' > الأسلوب (F#)
إنشاء ثلاثة دوال يمكن استخدامها لتطبيق طراز البرمجة المتزامن (APM) لحساب معطى غير متزامن.
مساحة الاسم/مسار الوحدة النمطية: Microsoft.FSharp.Control
التجميع: FSharp.Core (في FSharp.Core.dll)
// Signature:
static member AsBeginEnd : ('Arg -> Async<'T>) -> ('Arg * AsyncCallback * obj -> IAsyncResult) * (IAsyncResult -> 'T) * (IAsyncResult -> unit)
// Usage:
Async.AsBeginEnd (computation)
المعلمات
computation
اكتب: 'Arg -> Async<'T>دالة إنشاء الحساب غير متزامنة في في في "التقليدية.NET غير متزامن برمجة نموذج".
القيمة المُرجعة
المجموعة البدء ، إنهاء وإلغاء الأعضاء.
ملاحظات
يجب أن يتم نشر الوظائف بشكل طبيعي كأعضاء مع البادئة Begin ، End و Cancel ، ويمكن استخدامها داخل صواب تعريف كما يلي:
let beginAction,endAction,cancelAction =
Async.AsBeginEnd (fun arg -> computation)
member x.BeginSomeOperation(arg,callback,state:obj) =
beginAction(arg,callback,state)
member x.EndSomeOperation(iar) = endAction(iar)
member x.CancelSomeOperation(iar) = cancelAction(iar)
إذا كان الحساب غير متزامن يأخذ دون وسائط، ثم AsBeginEnd هو المستخدم كما يلي:
let beginAction,endAction,cancelAction =
Async.AsBeginEnd (fun () -> computation)
member x.BeginSomeOperation(callback,state:obj) =
beginAction((),callback,state)
member x.EndSomeOperation(iar) = endAction(iar)
member x.CancelSomeOperation(iar) = cancelAction(iar)
إذا كان الحساب غير متزامن يأخذ الوسيطتين، ثم AsBeginEnd هو المستخدم كما يلي:
let beginAction,endAction,cancelAction =
Async.AsBeginEnd (fun arg1 arg2 -> computation)
member x.BeginSomeOperation(arg1,arg2,callback,state:obj) =
beginAction((),callback,state)
member x.EndSomeOperation(iar) = endAction(iar)
member x.CancelSomeOperation(iar) = cancelAction(iar)
في كل حالة API الناتج سوف تكون على دراية إلى المبرمجين بلغات غير ذلك CLI وهي طريقة مفيدة إلى نشر حسابات غير متزامنة في مكونات CLI.
الأنظمة الأساسية
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