A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

让面板数字不停变化  我是先定义一个全局的布尔变量flag等于ture,然后while(flag){//让数字显示在面板上的方法...},点击停止的时候再将flag设成flase
不知道又没有更好的方法让数字在面板一直变动的方法,总觉得我这个很不专业


namespace 多线程1
{
    public partial class Form1 : Form
    {
        bool flag = true;
        public Form1()
        {
            InitializeComponent();
            drn = new dgrunNumber(runNumber);
        }
        private void btnStar_Click(object sender, EventArgs e)
        {
            
            Thread thread = new Thread(run);
            thread.IsBackground = true;
            thread.Start();
        }
        private void run()
        {
            Random rd = new Random();
            while (flag)
            {
                int i = rd.Next(10);
                this.Invoke(drn, i.ToString());
            }
        }
        private void runNumber(string msg)
        {
            lab1.Text = msg;
        }
        delegate void dgrunNumber(string msg);
        dgrunNumber drn = null;

        private void btnStop_Click(object sender, EventArgs e)
        {
            flag = false;
        }
    }
}

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

2 个回复

倒序浏览
试试一种进行页面局部异步刷新的AJAX技术。
回复 使用道具 举报
可以尝试 线程的挂起Suspend() 和 恢复Resume()
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马