tao5644
2017-10-16 05:29c#多线程处理控件问题
1.要实现label1 和label12 显示自加,两个线程同时执行。
2.目前显示刷新存在卡顿
3.怎么做到互不干扰,异步执行,类似单个线程,快速刷新界面?
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
{
int a2 = 0, b2 = 0,c2=0;
Thread a, b;
public Form1()
{
InitializeComponent();
a = new Thread(a4);
b = new Thread(b4);
}
private void button2_Click(object sender, EventArgs e)
{
a.Start();
}
private void button3_Click(object sender, EventArgs e)
{
b.Start();
}
private void a4()
{
while (true)
{
a1();
}
}
private void b4()
{
while (true)
{
b1();
}
}
private delegate void ThreadDelegate();
private void a1()
{
if (label1.InvokeRequired)
{
ThreadDelegate a3 = new ThreadDelegate(a1);
label1.Invoke(a3);
}
else
{
a2 = a2 + 1;
label1.Text = Convert.ToString(a2);
}
}
private void b1()
{
if (label2.InvokeRequired)
{
ThreadDelegate b3 = new ThreadDelegate(b1);
label2.Invoke(b3);
}
else
{
b2 = b2 + 1;
label2.Text = Convert.ToString(b2);
}
}
}
}
- 点赞
- 回答
- 收藏
- 复制链接分享
2条回答
为你推荐
- C#如何在WPF中使用socket的异步方法里调用主线程的控件?
- c语言
- 开发语言
- c++
- 1个回答
- 当网页采用js动态获取数据时,HttpClient应如何获取数据?
- html5
- c#
- json
- asp.net
- 2个回答
- 关于C#异步多线程编写时插入新线程的问题
- 控件
- 异步
- 多线程
- c#
- 4个回答
- c# winform中chart控件界面刷新问题
- c#
- 2个回答
- c# winform 多线程使用的问题 多线登录new新窗体的时候 报错
- 3个回答
换一换