c#+多线程listbox委托

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
using System.Threading;


namespace test
{
     public  partial  class Form1 : Form
    {
         public Form1()
        {
            InitializeComponent();
        }
         delegate  void SendToParent( string txt);

        //  public delegate string SendToParent();
        mysqlConnect conn =  new mysqlConnect();
        DataTable dt =  new DataTable();
        time tm =  new time();
         private  void Form1_Load( object sender, EventArgs e)
        {
           
            conn.getConnection();
           
        }
         private  void ConnServer()
        {
            SendToParent stc =  new SendToParent(ConnServerRes);
            SendToParent lb =  new SendToParent(lbtext);
             // 线程的相关操作
             this.Invoke(lb,  new  object[] {  " 获取用户名.... " });
            DataTable dm = conn.executeQuery( " select * from bbsmember ");
             string[] meber= new  string[dm.Rows.Count];
            
             for ( int i =  0; i < dm.Rows.Count; i++)
            {
                meber[i] = dm.Rows[i][ " username "].ToString();
            
            }
             this.Invoke(lb,  new  object[] {  " 等待插入.... " });
             for ( int i =  0; i < dt.Rows.Count; i++)
            {
                 string title = dt.Rows[i][ " 标题 "].ToString();
                 string text = dt.Rows[i][ " 内容 "].ToString();
                 // string pic = dt.Rows[i]["pic"].ToString();
                 int dy = DateTime.Now.Day +  1;
                 string year = DateTime.Now.Year.ToString();
                 string m = DateTime.Now.Month.ToString().PadLeft( 2' 0 ');
                 string s = DateTime.Now.Second.ToString().PadLeft( 2' 0 ');
               
                 string date = DateTime.Now.Year.ToString() +  " / "+DateTime.Now.Month.ToString().PadLeft( 2, ' 0 ')+ " / "+dy.ToString();
                Random rd =  new Random();
                 string h = rd.Next( 023).ToString().PadLeft( 2' 0 ');
                 string min = rd.Next( 059).ToString().PadLeft( 2' 0 ');
                 string tpdate = year+m+dy+h+min+s;
                 string view = rd.Next( 20, 30).ToString();
                 string i_id =  " 50_ " + rd.Next( 1, 3).ToString() +  " 0 ";
                 int j = rd.Next( 1, 37);
                 string author_ip = meber[j];
                 string sql =  " insert  into bbslistdata(title,text,date,reply,views,author_ip,topdate,area_id) values (' " + title +  " ',' " + text +  " ',' " + date +  " ',0,' " + view +  " ',' " + author_ip +  " ',' " + tpdate +  " ',' " + i_id +  " ') ";
                 if (conn.executeUpdate(sql) ==  true)
                {
                     this.Invoke(stc,  new  object[] {  " 插入成功 " });
                }


            }
             this.Invoke(lb,  new  object[] {  " 插入完毕 " });
            
        }

         private  void ConnServerRes( string str)
        {

             // 操作主线程中的控件
            listBox1.Items.Add(str);

        }
         private  void lbtext( string str)
        {

             // 操作主线程中的控件
            label1.Text=str;

        }

         private  void button2_Click( object sender, EventArgs e)
        {
             string sql =  " select * from data_content_1  order by ID ASC limit 50 ";
             dt = conn.executeQuery(sql);
            dataGrid1.DataSource = dt;
        }

         private  void button1_Click( object sender, EventArgs e)
        {
            Thread connThread =  new Thread(ConnServer);
             // connThread = new Thread(new ThreadStart(ConnServer));

            connThread.IsBackground =  true;
            connThread.Start();


        }
    }
}

转载于:https://www.cnblogs.com/okxajh/articles/2654808.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值