سؤال

ما هو LINQ إلى الأحداث.ك.a RX إطار الملقب رد الفعل امتداد في .NET 4.0 (ولكن كما يتوفر backported الإصدارات)?

وبعبارة أخرى ما هو كل الاشياء في System.Reactive.dll ؟

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

المحلول

.صافي Rx فريق (هذا ليس الاسم الرسمي) وجدت أن أي دفع تسلسل (الأحداث ، الاسترجاعات) يمكن أن ينظر إليه باعتباره سحب تسلسل (كما نفعل عادة أثناء الوصول إلى enumerables) وكذلك – أو هم مزدوج في الطبيعة.باختصار المراقب/ملاحظتها النمط المزدوج من نمط التعداد.

فما هو بارد حول هذه الازدواجية ؟

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

كما IObservable هو رياضي مزدوج من IEnumerable, .صافي Rx يسهل ينق على دفع تسلسل الأحداث, مثل الكثير من ينق على IEnumerables

أنه يعطي حرية أكبر أن يؤلف أحداث جديدة – يمكنك إنشاء أحداث معينة من الفعاليات العامة.

.صافي Rx يدخل اثنين من واجهات IObservable و IObserver أن "توفر بديل لاستخدام المدخلات والمخرجات محولات كما للمنتج و المستهلك من الحدث المصادر والمصارف" و هذا سوف تصبح قريبا بحكم الواقع على كتابة الشفرة غير المتزامنة في التعريفي الطريقة.هنا هو مثال سريع.

//Create an observable for MouseLeftButtonDown

var mouseLeftDown=Observable.FromEvent<MouseButtonEventArgs>  
        (mycontrol,"MouseLeftButtonDown");  

//Query the above observable just to select the points
var points = from ev in mouseEvents  
                 select ev.EventArgs.GetPosition(this);  

//Show points in the window's title, when ever user
//presses the left button of the mouse
points.Subscribe(p => this.Title = "Location ="  
                                        + p.X + "," + p.Y);

قد تذهب من خلال هذه الوظائف وكذلك للحصول على الرأس والذيل في التفاصيل.أيضا إلقاء نظرة على ويتعلق البرمجية المصدر كذلك.

تحقق من هذه المجموعة من المقالات

نصائح أخرى

يمكنك قراءة المزيد عن ذلك هنا:http://themechanicalbride.blogspot.com/2009/07/introducing-rx-linq-to-events.html

أول كان التعرض على هذا بلوق ، أنا أقرأ كتابه عن#F:http://tomasp.net/articles/reactive-ii-csevents.aspx

أساسا أفهم من ذلك هو أنه عند كتابة معالج أحداث حركات الماوس ، على سبيل المثال ، قد ترغب باستمرار التقاط هذه الأحداث ، وربما تكون قادرة على إحصاء عدد الحركات أو النقرات ، ولكن أساسا كنت ترغب في استخدام هذه المعلومات في طرق أكثر من مجرد معالج الحدث.لذا مجرد علاج الأحداث تيار مستمر.

أيضا, تحقق من هذه القناة 9 الفيديو: خبير الخبراء:براين بيكمان و إريك ماير - داخل .صافي إطار رد الفعل (Rx)

من العرض الوصف:

على .صافي إطار رد الفعل (Rx) هو رياضي مزدوج من ينق الكائنات.وتتكون من زوج من واجهات IObserver/IObservable أن تمثل دفع القائم ، أو ملاحظتها ، مجموعات, بالإضافة إلى مكتبة أساليب الإرشاد التي تنفذ LINQ الاستعلام القياسية المشغلين ، أخرى مفيدة تيار التحول المهام.

أعتقد أن جوهر RX تغيير زاوية والتي ننظر إلى المعلومات.بطبيعة الحال, كل قطعة من المعلومات نتيجة بعض العمليات التي تجري في للزمن.النهج التقليدي يعمل مع إسقاط العملية "التيار" الوقت الطائرة تفقد تفاصيل البعد الزمني نتيجة.

RX يعمل مع الإسقاط على بعض البعد الآخر ، واستولت على عنصر الوقت كذلك, لذلك لا عجب LINQ إلى RX مجموعة شاملة من العادية LINQ.

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