《C#多线程编程实战(原书第2版)》——1.8 前台线程和后台线程

1.8 前台线程和后台线程

本节将描述前台线程和后台线程,及如何设置该选项来影响程序的行为。

1.8.1 准备工作

为了学习本节,你需要安装Visual Studio 2015。除此之外无需其他准备。本节的源代码放置在BookSamples\Chapter1\Recipe7目录中。

1.8.2 实现方式

请执行以下步骤来了解程序中前台线程和后台线程的效果:

1.启动Visual Studio 2015。新建一个C#控制台应用程序项目。

2.在Program.cs文件中加入以下using指令:

3.在Main方法下面加入以下代码片段:

4.在Main方法中加入以下代码片段:

5.运行程序。

1.8.3 工作原理

当主程序启动时定义了两个不同的线程。默认情况下,显式创建的线程是前台线程。通过手动的设置threadTwo对象的IsBackground属性为true来创建一个后台线程。通过配置来实现第一个线程会比第二个线程先完成。然后运行程序。

第一个线程完成后,程序结束并且后台线程被终结。这是前台线程与后台线程的主要区别:进程会等待所有的前台线程完成后再结束工作,但是如果只剩下后台线程,则会直接结束工作。

一个重要注意事项是如果程序定义了一个不会完成的前台线程,主程序并不会正常结束。

时间: 2024-07-28 13:25:43

《C#多线程编程实战(原书第2版)》——1.8 前台线程和后台线程的相关文章

《C#多线程编程实战(原书第2版)》——3.2 在线程池中调用委托

3.2 在线程池中调用委托 本节将展示在线程池中如何异步的执行委托.另外,我们将讨论一个叫做异步编程模型(Asynchronous Programming Model,简称APM)的方式,这是.NET历史中第一个异步编程模式. 3.2.1 准备工作 为了学习本节,你需要安装Visual Studio 2015.除此之外无需其他准备.本节的源代码放置在BookSamples\Chapter3\Recipe1目录中. 3.2.2 实现方式 请执行以下步骤来了解如何在线程池中调用委托: 1.启动Vis

《C#多线程编程实战(原书第2版)》——第3章 使用线程池 3.1 简介

第3章 使用线程池 在本章中,我们将描述多线程中使用共享资源的常用技术.你将学到以下内容: 在线程池中调用委托 向线程池中放入异步操作 线程池与并行度 实现一个取消选项 在线程池中使用等待事件处理器及超时 使用计时器 使用BackgroundWorker组件 3.1 简介 在之前的章节中我们讨论了创建线程和线程协作的几种方式.现在考虑另一种情况,即只花费极少的时间来完成创建很多异步操作.正如在第1章的简介小节中讨论过的一样,创建线程是昂贵的操作,所以为每个短暂的异步操作创建线程会产生显著的开销.

《C#多线程编程实战(原书第2版)》——3.6 在线程池中使用等待事件处理器及超时

3.6 在线程池中使用等待事件处理器及超时 本节将描述如何在线程池中对操作实现超时,以及如何在线程池中正确地等待. 3.6.1 准备工作 为了学习本节,你需要安装Visual Studio 2015.除此之外无需其他准备.本节的源代码放置在BookSamples\Chapter3\Recipe5目录中. 3.6.2 实现方式 请执行以下步骤来了解在线程池中实现超时及正确的等待: 1.启动Visual Studio 2015.新建一个C#控制台应用程序项目. 2.在Program.cs文件中加入以

《C#多线程编程实战(原书第2版)》——1.9 向线程传递参数

1.9 向线程传递参数 本节将描述如何提供一段代码来使用要求的数据运行另一个线程.我们将介绍不同的方式来满足此任务,并且回顾常见的错误. 1.9.1 准备工作 为了学习本节,你需要安装Visual Studio 2015.除此之外无需其他准备.本节的源代码放置在BookSamples\Chapter1\Recipe8目录中. 1.9.2 实现方式 请执行以下步骤来了解如何给一个线程传递参数: 1.启动Visual Studio 2015.新建一个C#控制台应用程序项目. 2.在Program.c

《C#多线程编程实战(原书第2版)》——1.5 终止线程

1.5 终止线程 本节将讲述如何终止线程的执行. 1.5.1 准备工作 为了学习本节,你需要安装Visual Studio 2015.除此之外无需其他准备.本节的源代码放置在BookSamples\Chapter1\Recipe4目录中. 1.5.2 实现方式 请执行以下步骤来了解如何终止线程的执行: 1.启动Visual Studio 2015.创建一个新的C#控制台应用程序项目. 2.在Program.cs文件中加入以下using指令: 3.在Main方法下面加入以下代码片段: 4.在Mai

《C#多线程编程实战(原书第2版)》——1.6 检测线程状态

1.6 检测线程状态 本节将描述一个线程可能会有哪些状态.获取线程是否已经启动或是否处于阻塞状态等相应信息是非常有用的.请注意由于线程是独立运行的,所以其状态可以在任何时候被改变. 1.6.1 准备工作 为了学习本节,你需要安装Visual Studio 2015.除此之外无需其他准备.本节的源代码放置在BookSamplesChapter1Recipe5目录中. 1.6.2 实现方式 请执行以下步骤来了解如何确定线程状态及获取线程相关的信息. 1.启动Visual Studio 2015.创建

《C#多线程编程实战(原书第2版)》——1.3 暂停线程

1.3 暂停线程 本节将展示如何让一个线程等待一段时间而不用消耗操作系统资源. 1.3.1 准备工作 为了学习本节,你需要安装Visual Studio 2015.除此之外无需其他准备.本节的源代码放置在BookSamplesChapter1Recipe2目录中. 1.3.2 实现方式 请执行以下步骤来了解如何暂停线程而不消耗操作系统资源: 1.启动Visual Studio 2015.创建一个新的C# 控制台应用程序项目. 2.在Program.cs文件中加入以下using指令: 3.在Mai

《C#多线程编程实战(原书第2版)》——3.3 向线程池中放入异步操作

3.3 向线程池中放入异步操作 本节将描述如何向线程池中放入异步操作. 3.3.1 准备工作 为了学习本节,你需要安装Visual Studio 2015.除此之外无需其他准备.本节的源代码放置在BookSamplesChapter3Recipe2目录中. 3.3.2 实现方式 请执行以下步骤来了解如何向线程池中放入异步操作: 1.启动Visual Studio 2015.新建一个C#控制台应用程序项目. 2.在Program.cs文件中加入以下using指令: 3.在Main方法下面加入以下代

《C#多线程编程实战(原书第2版)》——导读

前 言 不久前,典型的个人计算机的CPU还只有一个计算核心,并且功耗足以煎熟鸡蛋.2005年,英特尔推出了其首款多核心CPU,从此计算机开始向不同的方向发展.低耗电量及多个计算核心变得比提高行计算(row computing)的核心性能更重要.这也导致了编程范式的改变.现在我们需要学习如何有效地使用所有CPU核心来最优化性能,并同时通过在特定时间只运行需要的程序来节省电池电量.除此之外,我们在编写服务器端应用程序时需要有效地利用多个CPU核心,甚至多台计算机来支持尽可能多的用户. 为了创建这样的

《JavaScript和jQuery实战手册(原书第3版)》---第1章 编写第一个JavaScript程序 1.1 编程简介

本节书摘来自华章出版社<JavaScript和jQuery实战手册(原书第3版)>一书中的第1章,第1.1节,作者David Sawyer McFarland,姚待艳 李占宣 译,更多章节内容可以访问"华章计算机"公众号查看. 第1章 编写第一个JavaScript程序 HTML自身并没有太多智能:它不能做数学运算,不能判断某人是否正确填写了一个表单,而且不能根据Web访问者的交互来做出判断.基本上,HTML让人们阅读文本.观看图片或视频,并且单击链接转向拥有更多文本.图片