zoukankan      html  css  js  c++  java
  • 多线程

        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                CheckForIllegalCrossThreadCalls = false;
                //关闭窗体的跨线程访问控件 检查
            }
            private void button1_Click(object sender, EventArgs e)
            {
                threadfun();
            }
            object obj1 = new object();
            void fun()
            {
                lock (obj1)//不加锁时,之前的一次循环没结束,也可执行执行下次循环
                {
                    for (int i = 0; i < 5000; i++)
                    {
                        textBox1.Text = (int.Parse(textBox1.Text) + 1).ToString();
                    }
                }
            }
            void funparam(object obj)
            {
                object[] o = (object[])obj;
                MessageBox.Show(o[0].ToString() + " " + o[1].ToString());
            }
     
            void threadfun()
            {
                Thread T1 = new Thread(fun);
                T1.IsBackground = true;
    // 1、当在主线程中创建了一个线程,那么该线程的IsBackground默认是设置为FALSE的。
    //2、当主线程退出的时候,IsBackground=FALSE的线程还会继续执行下去,直到线程执行结束。
    //3、只有IsBackground=TRUE的线程才会随着主线程的退出而退出。(这样没执行完突然退出不会报错)
    //4、当初始化一个线程,把Thread.IsBackground=true的时候,指示该线程为后台线程。后台线程将会随着主线程的退出而退出。
    //5、原理:只要所有前台线程都终止后,CLR就会对每一个活在的后台线程调用Abort()来彻底终止应用程序。
                T1.Start();
                Thread T2 = new Thread(fun);
                T2.IsBackground = true;
                T2.Start();
                Thread T3 = new Thread(fun);
                T3.IsBackground = true;
                T3.Start();
                Thread T4 = new Thread(funparam);
                object oblarr = new object[] { "bing", 12 };
                T4.IsBackground = true;
                T4.Start(oblarr);
                //T4 简写了T5
                ParameterizedThreadStart p = new ParameterizedThreadStart(funparam);
                Thread T5 = new Thread(p);
                   T5.IsBackground = true;
                T5.Start(oblarr);
            }
        }
    
  • 相关阅读:
    Qt Installer Framework翻译(7-0)
    Qt Installer Framework翻译(4)
    Qt Installer Framework翻译(6-0)
    Qt Installer Framework翻译(5-4)
    Qt Installer Framework翻译(5-3)
    Qt Installer Framework翻译(5-2)
    Qt Installer Framework翻译(5-1)
    Qt Installer Framework翻译(5-0)
    Qt Installer Framework翻译(3-5)
    angularjs1.X进阶笔记(3)——如何重构controller
  • 原文地址:https://www.cnblogs.com/bingguang/p/3174986.html
Copyright © 2011-2022 走看看