苏飞论坛

标题: 分享一个,线程更新数据,并及时显示到页面的例子 [打印本页]

作者: qw8613243    时间: 2013-6-20 22:26
标题: 分享一个,线程更新数据,并及时显示到页面的例子
下过如图


作者: 站长苏飞    时间: 2013-6-21 08:05
感谢 你的无私奉献 建议楼主如果代码量不是太大,建议贴代码,这样更方便大家阅读。
作者: qw8613243    时间: 2013-6-21 09:38
以后会注意的!~

作者: 风雅。    时间: 2013-6-25 11:13
本帖最后由 风雅。 于 2013-6-25 11:16 编辑

[code=csharp]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.Threading;
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        Thread _thread;
        private void btn_Start_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(txt_Num.Text))
            {
                for (int i = 0; i < int.Parse(txt_Num.Text); i++)
                {
                    Application.DoEvents();
                    addListView(i.ToString(), Color.Red, "线程执行次数为:" + i.ToString());
                }
            }

        }

        private void Deter(MethodInvoker method)
        {
            if (InvokeRequired)
            {
                Invoke(method);
            }
            else
                method();
        }

        private void addListView(string str, Color clo, string count)
        {
            try
            {
                _thread = new Thread(new ThreadStart(() =>
                {
                    Deter(() =>
                    {
                        ListViewItem list = new ListViewItem();
                        list.SubItems.Add("时间");
                        list.SubItems.Add("信息");
                        list.SubItems[0].Text = DateTime.Now.ToString("yyyy-HH:mm");
                        list.SubItems[1].Text = str;
                        list.SubItems[2].Text = count;
                        list.ForeColor = clo;
                        lstView.Items.Insert(0, list);
                    });
                }));
                _thread.Start();
            }
            catch (Exception)
            {

                throw;
            }
            finally { }


        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            _thread.Abort();  
        }

        private void panel1_Paint(object sender, PaintEventArgs e)
        {

        }

    }
}
[/code]
作者: ueooto    时间: 2013-7-15 22:56
不错i!看看!学习学习




欢迎光临 苏飞论坛 (http://www.sufeinet.com/) Powered by Discuz! X3.4