Winform 多线程查询数据

 1.ThreadPool.QueueUserWorkItem(search, null);


2. private void search(object c)

        {

           //查询方法

  // 更新界面

         this.BeginInvoke(new updateui(upui));  

        }

3.private void upui()

        { 
            dgvTpList.DataSource = null;
            dgvTpList.DataSource = imageModels;
         
        }


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Winform使用多线程绘制Chart曲线可以提高程序的响应性能和绘图效率。具体实现步骤如下: 1.在窗体添加一个Chart控件,并设置好其相关属性(如数据源、坐标系等)。 2.创建一个线程,用于绘制Chart曲线。在线程调用Chart控件的Invalidate方法来触发控件的重绘事件。 3.在控件的Paint事件绘制Chart曲线。在绘制之前,需要获取Chart控件的Graphics对象,并在绘制完成后释放该对象。 以下是代码示例: ```csharp private void Form1_Load(object sender, EventArgs e) { // 设置Chart控件的属性 chart1.DataSource = GetData(); chart1.Series[0].XValueMember = "X"; chart1.Series[0].YValueMembers = "Y"; } private void button1_Click(object sender, EventArgs e) { // 启动线程绘制Chart曲线 Thread t = new Thread(new ThreadStart(DrawChart)); t.Start(); } private void DrawChart() { // 获取Chart控件的Graphics对象 Graphics g = chart1.CreateGraphics(); // 循环绘制Chart曲线 for (int i = 0; i < 100; i++) { // 修改Chart控件的数据源 chart1.DataSource = GetData(); // 触发控件的重绘事件 chart1.Invalidate(); // 等待一段时间 Thread.Sleep(100); } // 释放Graphics对象 g.Dispose(); } private void chart1_Paint(object sender, PaintEventArgs e) { // 获取Chart控件的Graphics对象 Graphics g = e.Graphics; // 绘制Chart曲线 chart1.ChartAreas[0].AxisX.ScaleView.Zoom(0, 10); chart1.ChartAreas[0].AxisY.ScaleView.Zoom(0, 100); chart1.Series[0].ChartType = SeriesChartType.Line; chart1.Series[0].BorderWidth = 2; chart1.DataBind(); chart1.Series[0].DrawCustomizedLine(g, chart1); // 释放Graphics对象 g.Dispose(); } // 生成随机数据源 private DataTable GetData() { DataTable dt = new DataTable(); dt.Columns.Add("X", typeof(int)); dt.Columns.Add("Y", typeof(int)); Random r = new Random(); for (int i = 0; i < 10; i++) { DataRow dr = dt.NewRow(); dr["X"] = i; dr["Y"] = r.Next(100); dt.Rows.Add(dr); } return dt; } ``` 在该示例,点击按钮后会启动一个线程来循环绘制Chart曲线,每次绘制之前都会修改Chart控件的数据源,并触发控件的重绘事件。在控件的Paint事件,会获取Chart控件的Graphics对象,并绘制Chart曲线。最后释放Graphics对象。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值