用过timer只能设定时间间隔刷新数据,有没有不用timer刷新的,或者怎么利用多线程和while实现跨线程实时给label.text赋值
2条回答 默认 最新
- CSDN专家-showbo 2021-08-20 10:03关注
Thread+Invoke更新就行,最主要的是Invoke,要不会出错在其他线程更新控件内容,示例代码如下,有帮助麻烦点个采纳【本回答右上角】,谢谢~~有其他问题可以继续交流~
using System; using System.Data; using System.Windows.Forms; using System.Threading; namespace WindowsFormsApp1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { new Thread(() => { while (true) { this.Invoke(new Action(() => { label1.Text = DateTime.Now.ToString(); })); Thread.CurrentThread.Join(1000);//暂停1s } }).Start(); } } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 8无用
悬赏问题
- ¥15 3D多模态医疗数据集-视觉问答
- ¥20 设计一个二极管稳压值检测电路
- ¥15 内网办公电脑进行向日葵
- ¥15 如何输入双曲线的参数a然后画出双曲线?我输入处理函数加上后就没有用了,不知道怎么回事去掉后双曲线可以画出来
- ¥50 WPF Lidgren.Network.Core2连接问题
- ¥15 soildworks装配体的尺寸问题
- ¥100 有偿寻云闪付SDK转URL技术
- ¥30 基于信创PC发布的QT应用如何跨用户启动后输入中文
- ¥20 非root手机,如何精准控制手机流量消耗的大小,如20M
- ¥15 远程安装一下vasp