C# Winform使用线程,委托定时更新界面UI控件,解决界面卡顿问题

来源:互联网 发布:底层软件开发工程师 编辑:程序博客网 时间:2024/05/02 03:03
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Data.SqlClient;using System.Drawing;using System.Linq;using System.Net;using System.Net.Sockets;using System.Text;using System.Threading;using System.Threading.Tasks;using System.Windows.Forms;namespace SampleNotice{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void Form1_Load(object sender, EventArgs e)        {            Thread t = new Thread(new ThreadStart(GetData));            t.IsBackground = true;            t.Start();        }        private void GetData()        {            var timer = new System.Timers.Timer();            timer.Interval = 1000;            timer.Enabled = true;            timer.AutoReset = true;//设置是执行一次(false)还是一直执行(true);              timer.Start();            timer.Elapsed += (o, a) =>            {                SetData();                ShowMessage(string.Format("更新时间:" + DateTime.Now));            };        }        //声明委托        private delegate void SetDataDelegate();        private void SetData()        {            if (this.InvokeRequired)            {                this.Invoke(new SetDataDelegate(SetData));            }            else            {                label1.Text = string.Format("更新时间:" + DateTime.Now);            }        }        //声明委托        private delegate void ShowMessageDelegate(string message);        private void ShowMessage(string message)        {            if (this.InvokeRequired)            {                ShowMessageDelegate showMessageDelegate = ShowMessage;                this.Invoke(showMessageDelegate, new object[] { message });            }            else            {                txtbox.Text = message;            }        }    }}

0 0
原创粉丝点击