zoukankan      html  css  js  c++  java
  • C# 线程(设置后台线程、取消捕获对错误线程的调用)

    1、什么是线程

      操作系统分配处理器时间的基本单元,也是一个独立的运行单元。
      特点:
        ①默认情况,一个进程只包含一个线程,从程序的开始到执行结束;
        ②线程可以派生自其它线程,所以一个进程可以包含不同状态的多个线程,来执行程序的不同部分;
        ③一个进程中的多个线程,将共享该进程的资源;
      用一个通俗的例子讲:一个进程相当于一个工厂,线程就是一个个的车间,工厂(进程)由多个车间(线程)组成,
        并包含车间(线程)所需的一切资源。工厂(进程)的工作其实就是依赖于车间(线程)的工作。

    2、为什么要用多线程

      ①让计算机“同时”做多件事情,节约时间

      ②多线程可以让一个程序“同时”处理多个事情

      ③后台运行进程,提高程序的运行效率,也不会使主界面出现无响应的情况

      ④获得当前线程和当前进程

    3、线程的使用

      引入  using System.Threading;

    public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private Thread th;
    
            private void button1_Click(object sender, EventArgs e)
            {
                // 线程分为两种:
                // 1、前台线程:只有前台线程都关闭才能完成程序关闭(默认属于前台线程)
                // 2、后台线程:只要前台线程都结束,后台线程自动结束
    
                // 创建一个线程去执行这个方法
                th = new Thread(Test);
    
                // 设置后台线程
                th.IsBackground = true;
    
                // 标记这个线程准备就绪了,可以随时被执行,具体什么时候执行这个线程由CPU决定
                th.Start();
            }
    
            private void Test()
            {
                for (int i = 0; i < 100000; i++)
                {
                    //Console.WriteLine(i);
                    textBox1.Text = i.ToString();
                }
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                // 取消捕获对错误线程的调用
                Control.CheckForIllegalCrossThreadCalls = false;
            }
    
            private void Form1_FormClosing(object sender, FormClosingEventArgs e)
            {
                // 当你点击关闭窗体的时候,判断新线程是否为null
                if (th != null)
                {
                    // 立即结束线程。使用了About就不能再start
                    th.Abort();
                }
            }
        }
  • 相关阅读:
    浏览器内核
    手机端开发适配问题
    关于样式的问题
    nginx和uwsgi的区别和作用
    Flask (七) 部署
    Flask (六) 项目(淘票票)
    Flask (五) RESTful API
    Flask (四) 模型进阶
    Flask (三) 数据迁移
    Flask (二) cookie 与 session 模型
  • 原文地址:https://www.cnblogs.com/duhaoran/p/12922027.html
Copyright © 2011-2022 走看看