मैं .net Observable
कक्षा का उपयोग कर एक साधारण पर्यवेक्षक पैटर्न को लागू करने की कोशिश कर रहा हूं। मैं कोड है कि इस तरह दिखता है:.net अवलोकन 'ObserveOn' एक पृष्ठभूमि धागा
Observable.FromEventPattern<PropertyChangedEventArgs>(
Instance.User,
"PropertyChanged")
.Where(e => e.EventArgs.PropertyName == "FirstName")
.ObserveOn(Scheduler.ThreadPool)
.Subscribe(search => OnFirstNameChanged(search.EventArgs));
Observable.FromEventPattern<PropertyChangedEventArgs>(
Instance.User,
"PropertyChanged")
.Where(e => e.EventArgs.PropertyName == "LastName")
.ObserveOn(Scheduler.ThreadPool)
.Subscribe(search => OnLastNameChanged(search.EventArgs));
मैं पर्यवेक्षकों एक पृष्ठभूमि धागा पर चलाना चाहते हैं, लेकिन मैं उन्हें एक ही पृष्ठभूमि धागे पर सभी चलाना चाहते हैं (हमारी वास्तविक कार्यान्वयन के लिए, यह भी करने के लिए जटिल हो जाएगा प्रत्येक श्रोता को एक अलग थ्रेड पर रखें)।
अर्थात मैं OnXXXChanged
तर्क के सभी यूआई धागा के अलावा किसी अन्य धागे पर प्रदर्शन किया जा सकता है, लेकिन Observing
पूरे ThreadPool पर करने के बजाय, मुझे यकीन है कि वे सही क्रम में चलाने के लिए, एक ही धागे पर बनाना चाहते चाहते हैं।
उपरोक्त को कैसे संशोधित किया जाना चाहिए?
इसके अलावा, कुछ हद तक संबंधित नोट पर, क्या इस पैटर्न को लागू करने के लिए Observable
कक्षा का उपयोग करके कोई अच्छा नमूना कोड उदाहरण हैं?
ग्रेट, बहुत बहुत धन्यवाद! – user981225
EventLoopScheduler IDISposable लागू करता है ताकि आप इसका निपटान करने के लिए जिम्मेदार होंगे। आप सब्सक्रिप्शन में जीवन भरने के लिए उपयोग करने योग्य फैक्ट्री विधि का उपयोग कर सकते हैं। – Fredrick
शेड्यूलर.NewThread अभी बहिष्कृत है, आपको इसके बजाय NewThreadScheduler.Default का उपयोग करना चाहिए। – Kreshnik