用过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无用