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
  • 相关阅读:
    Java的字符串及格式化输入输出
    Java的数据类型与类型转换
    java基本程序
    svn基础入门
    github基础入门笔记
    git基础入门笔记
    linux基础入门笔记
    二、FreeMarker 模版开发指南 第二章 数值和类型
    【CodeForces】[599B]Spongebob and Joke
    【CodeForces】[612B]HDD is Outdated Technology
  • 原文地址:https://www.cnblogs.com/kimisme/p/5327246.html
Copyright © 2011-2022 走看看