zoukankan      html  css  js  c++  java
  • C# 前台线程与后台线程区别

    using System;
    using System.Drawing;
    using System.Windows.Forms;
    using System.Threading;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                //前台线程和后台线程唯一区别就是:应用程序必须运行完所有的前台线程才可以退出;
                //而对于后台线程,应用程序则可以不考虑其是否已经运行完毕而直接退出,
                //所有的后台线程在应用程序退出时都会自动结束。
                MessageBox.Show("点击按钮启动了一个前台线程。
    前台线程:“既然我上台了,我一定要表演完,不然我跟你没完!”");
                //前台线程
                Thread t1 = new Thread(Say);
                t1.IsBackground = false;
                t1.Name = "前台线程";
                t1.Start();            
            }
            private void button2_Click(object sender, EventArgs e)
            {
                MessageBox.Show("点击按钮启动了一个后台线程。
    后台线程:“既然我没上台,我受制于应用程序,它关了我就自动关了(舞台都关了,我在后台再干活就没意思了)!”");
                //后台线程
                Thread t2 = new Thread(Say);
                t2.IsBackground = true;
                t2.Name = "后台线程";
                t2.Start();
            }
            private void Say()
            {
                for (int i = 0; i < 100; i++)
                {
                    MessageBox.Show("我演,我卖力的演!
    
    把主窗口关了,你看我还在不在?"+i.ToString());
                }
            }
        }
    }

    建议先启动一个后台线程按钮,感觉没啥吧?然后再启动一个前台线程。看看是否是前台线程很顽强的跟你没完!绝对让你看一遍永不忘记!

  • 相关阅读:
    跨域问题(使用jsonp解决)
    通用Mapper使用(Maven+SSM)
    hosts文件修改(域名和IP地址对应修改)
    ExportExcel(用poi导出Excel文件:用List<Map<String,Object>>)
    activiti已结束子流程退回
    一个数据库死锁的案例
    mysql函数使用的例子
    mybatis拦截器
    Objects工具类
    Spring Boot 中读取配置属性
  • 原文地址:https://www.cnblogs.com/zywf/p/4541626.html
Copyright © 2011-2022 走看看