首页 > 其他分享 >理解前台线程和后台线程

理解前台线程和后台线程

时间:2024-03-15 16:56:21浏览次数:17  
标签:窗口 Thread 线程 前台 关闭 后台

步骤:

  1.准备一个测试程序,主窗口中通过按钮调起子窗口

  2.子窗口添加启动线程的按钮,按钮事件代码见下方

  3.禁用前台线程并启用后台线程代码,运行程序,显示子窗口,启动线程,关闭子窗口,控制台有打印输出,关闭主窗口,调试停止,打印停止

  4.禁用后台线程并启用前台线程代码,运行程序,显示子窗口,启动线程,关闭子窗口,控制台有打印输出,关闭主窗口,调试仍然运行,打印还在继续

结论:

  1.子窗口关闭时不影响前台及后台线程运行

  2.前台线程阻止程序退出,后台线程不阻止

 

        private void btn_EnableThreads_Click(object sender, EventArgs e)
        {
            //var thread1 = new Thread(() =>
            //{
            //    for (int i = 0; i < 100; i++)
            //    {
            //        Console.WriteLine($"Background {i}");
            //        Thread.Sleep(500);
            //    }
            //});
            //thread1.IsBackground = true;
            //thread1.Start();

            var thread2 = new Thread(() =>
            {
                for (int i = 0; i < 100; i++)
                {
                    Console.WriteLine($"No Background {i}");
                    Thread.Sleep(500);
                }
            });
            thread2.Start();
        }
View Code

 

标签:窗口,Thread,线程,前台,关闭,后台
From: https://www.cnblogs.com/chixiner/p/18075804

相关文章

  • MIT 6.S081入门lab7 多线程
    MIT6.S081入门lab7多线程一、参考资料阅读与总结1.xv6book书籍阅读(Chapter7:SchedulingthroughSection7.4)1.概述:由于操作系统往往运行比CPU数量更多的进程,因此需要对CPU进行虚拟化,使多个进程能够分时复用CPU资源2.多路复用:xv6中多路复用有2种方式:sleep和wakeup机制......
  • 拯救php性能的神器webman-使用后台webman-admin
    在webman的插件市场里面发现了这个webman-admin安装的话很简单,就是在已经安装了webman的目录里面执行  composerrequire-Wwebman/admin 安装过程提示这些Usingversion^0.6.24forwebman/admin./composer.jsonhasbeenupdatedRunningcomposerupdatewebman/......
  • 多线程系列(二十) -CompletableFuture使用详解
    一、摘要在上篇文章中,我们介绍了Future相关的用法,使用它可以获取异步任务执行的返回值。我们再次回顾一下Future相关的用法。publicclassFutureTest{publicstaticvoidmain(String[]args)throwsException{longstartTime=System.currentTimeMillis()......
  • gdb调试多线程
    gdb调试多线程程序#查看进程bookpsaux|grepbook#查看线程bookps-aL|grepbook 在gdb中执行 #查看线程数infothreads#切换线程thread线程id#只运行当前线程,其他线程挂起setscheduler-lockingon#运行全部的线程setscheduler-lockingoff#指定某......
  • C++并发编程:线程池学习
    文章目录一、线程池的概念二、线程池的设计三、线程池的实现1、ThreadPool声明2、线程创建3、添加任务4、ThreadPool析构四、相关知识点1、emplace_back和push_back2、typenamestd::result_of<F(Args...)>::type3、std::packaged_task<return_type()>4、函数模板和......
  • 有来团队后台项目-解析9
    animate.css安装pnpmianimate.css--save引入//main.tsimport'animate.css';使用<scriptsetuplang="ts">import{ref}from"vue";importvariablesfrom"@/styles/variables.module.scss";defineProps<......
  • 有来团队后台项目-解析8
    UnoCss介绍UnoCss官网UnoCss官网安装pnpmadd-Dunocss引入vite.config.tsimportUnoCSSfrom'unocss/vite'//plugins中引入UnoCSS({/*options*/}),创建uno.config.ts//uno.config.tsimport{defineConfig,presetAttributify,presetIco......
  • 多线程(代码案例: 单例模式, 阻塞队列, 生产者消费者模型,定时器)
    设计模式是什么类似于棋谱一样的东西计算机圈子里的大佬为了能让小菜鸡的代码不要写的太差针对一些典型的场景,给出了一些典型的解决方案这样小菜鸡们可以根据这些方案(ACM里面叫板子,象棋五子棋里叫棋谱,咱这里叫设计模式),略加修改,这样代码再差也差不到哪里去......
  • 线程工具类与原子类
    参考文档:CountDownLatch、CyclicBarrier、Semaphore的用法和区别juc15_基本AtomicInteger、数组、引用AtomicStampedReference、对象的属性修改原子类AtomicIntegerFieldUp、原子操作增强类LongAdder辅助工具类CountDownLatch(闭锁)做减法允许一个或多个线程等待直到......
  • 并发支持库:多线程中的std::call_once单次调用
    std::call_once中定义template<classCallable,class...Args>voidcall_once(std::once_flag&flag,Callable&&f,Args&&...args);确保函数或者代码片段在在多线程环境下,只需要执行一次。常用的场景如Init()操作或一些系统参数的获取等。此函数在POSIX中类似p......