zoukankan      html  css  js  c++  java
  • C#学习-多线程小练习

    1.双色球案例

    namespace _18双色球案例
    {
        public partial class Form1 : Form
        {
            private bool IsRunning;
            private List<Label> lbList = new List<Label>();
            public Form1()
            {
                InitializeComponent();
            }
            /// <summary>
            /// 保存当前线程
            /// </summary>
            private Thread ThreadS { get; set; }
            /// <summary>
            /// 启动线程
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void btnStatt_Click(object sender, EventArgs e)
            {
                Thread thread = new Thread(new ThreadStart(() =>
                {
                    IsRunning = true;
                    Random ran = new Random();
                    while (IsRunning)
                    {
                        foreach (Label label in lbList)
                        {
                            if (label.InvokeRequired)
                            {
                                label.Invoke(new Action<string>(s => label.Text = s), ran.Next(0, 10).ToString());
                            }
                            else
                            {
                                label.Text = ran.Next(0, 10).ToString();
                            }
                        }
                        Thread.Sleep(200);
                    }
                }));
                thread.IsBackground = true;
                thread.Start();
                ThreadS = thread;
            }
    
            /// <summary>
            /// 终止线程
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void btnStop_Click(object sender, EventArgs e)
            {
                IsRunning = false;
                if (ThreadS == null || !ThreadS.IsAlive)
                {
                    return;
                }
                else
                {
                    ThreadS.Abort();
                }
            }
            /// <summary>
            /// 动态创建label
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void Form1_Load(object sender, EventArgs e)
            {
                for (int i = 0; i < 6; i++)
                {
                    Label lb = new Label();
                    lb.Text = i.ToString();
                    lb.AutoSize = true;
                    lb.Location = new Point(50 * i + 50, 100);
                    this.Controls.Add(lb);
                    lbList.Add(lb);
                }
            }
        }
    }
    View Code

    2.

    更多精彩内容请看:http://www.cnblogs.com/2star
  • 相关阅读:
    MVC路由测试
    关于Dapper的使用笔记3
    关于Dapper的使用笔记2
    关于Dapper的使用笔记1
    关于WCF与Autofac的整合
    js获取页面元素距离浏览器工作区顶端的距离
    document.body.scrollTop和document.documentElement.scrollTop 以及值为0的问题
    js实现获取对象key名
    微信小程序分包跳转主包页面
    js禁止页面滚动
  • 原文地址:https://www.cnblogs.com/kimisme/p/5327246.html
Copyright © 2011-2022 走看看