C# 中的Winform 动态显示当前数据循环情况

来源:互联网 发布:python 元组转列表 编辑:程序博客网 时间:2024/05/23 00:33


在Winform中,大多数人都会碰到需要显示当前对数据的处理状态或是进度,该种方式,一般使用线程执行该程序,获取线程中的数据。

在处理事件时多采用线程执行的方式例如

 

 ThreadStart threadstart = new ThreadStart(GetUrlList);            Thread thread = new Thread(threadstart);            thread.IsBackground = true;            thread.Start();    

 上例中GetUrlList()为执行的函数 

可在GetUrlList()函数中有这样一段段 

foreach (var item in list)            {                string turl = GetUrl(item);                if (!string.IsNullOrEmpty(turl))                {                    turl = "http://" + turl;                    SetText(turl);                  }            }

 

定义如下委托

delegate void SetTextCallback(string text);

 

函数 SetText(turl),通过该函数设置在winform程序呈现界面设置当前执行的情况

private void SetText(string text)        {            // InvokeRequired需要比较调用线程ID和创建线程ID            // 如果它们不相同则返回true            if (this.txtSubUrl.InvokeRequired)            {                SetTextCallback d = new SetTextCallback(SetText);                this.Invoke(d, new object[] { text });            }            else            {                this.txtSubUrl.Text = text;            }        }



 

原创粉丝点击