多线程填充dataGridView

1      

   using System.Threading;

    先定义委托 线程

      Thread myThread;
        private delegate  void myDelegate(string r, string str);//定义委托

 

2

   窗体载入时添加列
        private void Form1_Load(object sender, EventArgs e)
        {
            this.dataGridView1.Columns.Add("ad", "ad");//添加列
        }

3  

     private void button1_Click(object sender, EventArgs e)
        {
            myThread= new Thread(startFillDv);//实例化线程
            myThread .Start();//启动线程
        }

4

     private void startFillDv()
        {

           for (int i =0;i<=50000;i++)
           {
               Grid(i.ToString(), i.ToString());
               Thread.Sleep(1000);//干这么久,休息下的
           }
           
        }

5

        private void Grid(string s,string sa)
        {
       
            if (this.InvokeRequired)
            {

                this.Invoke(new myDelegate(Grid), new object[] { s, sa });
            }
            else
                this.dataGridView1.Rows.Add(sa); //加行
            
           
        }

完整代码:

 

 

ContractedBlock.gif ExpandedBlockStart.gif Code
 1using System;
 2using System.Collections.Generic;
 3using System.ComponentModel;
 4using System.Data;
 5using System.Drawing;
 6using System.Text;
 7using System.Windows.Forms;
 8using System.Threading;
 9namespace TestMuiltThread
10ExpandedBlockStart.gifContractedBlock.gif{
11    public partial class Form1 : Form
12ExpandedSubBlockStart.gifContractedSubBlock.gif    {
13        Thread myThread;
14        private delegate  void myDelegate(string r, string str);//定义委托
15        public Form1()
16ExpandedSubBlockStart.gifContractedSubBlock.gif        {
17            InitializeComponent();
18        }

19
20        private void Form1_Load(object sender, EventArgs e)
21ExpandedSubBlockStart.gifContractedSubBlock.gif        {
22            this.dataGridView1.Columns.Add("ad""ad");//添加列
23        }

24
25        private void button1_Click(object sender, EventArgs e)
26ExpandedSubBlockStart.gifContractedSubBlock.gif        {
27            myThread= new Thread(startFillDv);//实例化线程
28            myThread .Start();
29        }

30        private void startFillDv()
31ExpandedSubBlockStart.gifContractedSubBlock.gif        {
32
33           for (int i =0;i<=50000;i++)
34ExpandedSubBlockStart.gifContractedSubBlock.gif           {
35               Grid(i.ToString(), i.ToString());
36               Thread.Sleep(1000);
37           }

38            
39        }

40
41        private void Grid(string s,string sa)
42ExpandedSubBlockStart.gifContractedSubBlock.gif        {
43        
44            if (this.InvokeRequired)
45ExpandedSubBlockStart.gifContractedSubBlock.gif            {
46
47ExpandedSubBlockStart.gifContractedSubBlock.gif                this.Invoke(new myDelegate(Grid), new object[] { s, sa });
48            }

49            else
50                this.dataGridView1.Rows.Add(sa); 
51            
52           
53        }

54
55        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
56ExpandedSubBlockStart.gifContractedSubBlock.gif        {
57            if (this.myThread.IsAlive())
58ExpandedSubBlockStart.gifContractedSubBlock.gif            {
59                this.myThread.Abort();//结束线程
60            }

61        }

62       
63
64    }

65}

 

 

 

转载于:https://www.cnblogs.com/lhjhl/archive/2008/09/09/1287926.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值