zoukankan      html  css  js  c++  java
  • lock Thread的作用

    lock在图形的绘制方面有一定的应用,
    特别是当要求结束一个计算后,再进行绘图时,常会将计算的任务用lock, 最后进行绘图

           Thread myThread;
            Thread myThread1;

            public void Add()
            {
                  {
                    for (int i = 100; i >= 0; i--)
                    {
                        Thread.Sleep(200);
                        label1.Text = i.ToString();
                    }
                }
            }

            public void Add1()
            {
                {
                    for (int j = 0; j <= 30; j++)
                    {
                        Thread.Sleep(200);
                        label2.Text = j.ToString();
                    }
                }
            }

            private void Form1_Load(object sender, EventArgs e)
            {
                myThread = new Thread(new ThreadStart(Add));
                myThread1 = new Thread(new ThreadStart(Add1));
                myThread.Start();
                myThread1.Start();
            }

    如果没有lock其中的Add 或add1,那么,将动态显示两组数值的变化,
    当加上lock后,就会等其中的add或aa1运行结束后,再时行(绘图其它操作)

         Thread myThread;
            Thread myThread1;

            public void Add()
            {
                //lock (this)
                {
                    for (int i = 100; i >= 0; i--)
                    {
                        Thread.Sleep(200);
                        label1.Text = i.ToString();
                    }
                }
            }

            public void Add1()
            {
                lock (this)   //Add1结束后,显示Form1,
                {
                    for (int j = 0; j <= 30; j++)
                    {
                        Thread.Sleep(200);
                        label2.Text = j.ToString();
                    }
                }
            }

            private void Form1_Load(object sender, EventArgs e)
            {
                myThread = new Thread(new ThreadStart(Add));
                myThread1 = new Thread(new ThreadStart(Add1));
                myThread.Start();
                myThread1.Start();
            }

  • 相关阅读:
    xxl-job 使用相关
    Kettle 使用相关
    C# 调用 WinApi 中 ShellExecute 打开 Excel 的方法
    SQL Server 日志文件清理
    windows远程桌面无法粘贴复制的解决方法
    大数据、业务多元化将是商业银行未来的发展趋势
    TeraData金融数据模型
    整理ORACLE数据库备份常用术语
    ORACLE恢复神器之ODU/AUL/DUL
    ORACLE之UTL_FILE包详解
  • 原文地址:https://www.cnblogs.com/greencolor/p/1578188.html
Copyright © 2011-2022 走看看