如何在添加到列表中的任何元素上订阅列表? [英] How can i subscribe list on any element added to list?

查看:75
本文介绍了如何在添加到列表中的任何元素上订阅列表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好,

我需要订阅List< T>在添加到列表的任何元素上。我尝试下面的代码,但它不起作用。 (因为订阅已完成,因此初始列表为空)

I need subscribe List<T> on any element added to list. I tried below code but it's not working. (because subscribe completed so initial list is empty)

如何用rx实现我的问题?

How can i implement my problem with rx?




  private void button1_Click(object sender, EventArgs e)
        {
            List<Exception> errors = new List<Exception>();
            var observer = errors.ToObservable();
            observer.Subscribe(err =>
            {
                _txtSummary.AppendText(Environment.NewLine);
                _txtSummary.AppendText(err.ToString());
            });

            for (int i = 0; i < 1000; i++)
            {
                Thread.Sleep(100);
                if (i % 3 == 0)
                    errors.Add(new Exception("yov"));
            }
        }

OğuzhanEren

Oğuzhan Eren

推荐答案

我解决了我的问题(除了:非法交叉线程错误) 如下所示但我不喜欢这个解决方案。  (SelectMany with Interval)

I solve my problem (except: illegal cross thread error) like below but i don't like this solution.  (SelectMany with Interval)

 private void button1_Click(object sender, EventArgs e)
        {
            List<exception> errors = new List<exception>();
            var observer = from t in Observable.Interval(TimeSpan.FromMilliseconds(100))
                           from item in errors.ToObservable()
                           select item;
            
            observer.Subscribe(err =>
            {
                _txtSummary.AppendText(Environment.NewLine);
                _txtSummary.AppendText(err.ToString());
            });

            for (int i = 0; i < 1000; i++)
            {
                Thread.Sleep(100);
                if (i % 3 == 0)
                    errors.Add(new Exception("yov"));
            }
        }</exception></exception>


我需要解决 现在非法交叉线程错误?

I need solve illegal cross thread error now?


这篇关于如何在添加到列表中的任何元素上订阅列表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆