《C#多线程编程实战(原书第2版)》——1.2 使用C#创建线程-阿里云开发者社区

开发者社区> 华章计算机> 正文

《C#多线程编程实战(原书第2版)》——1.2 使用C#创建线程

简介:
+关注继续查看

本节书摘来自华章出版社《C#多线程编程实战(原书第2版)》一书中的第1章,第1.2节,作者(美)易格恩·阿格佛温(Eugene Agafonov),黄博文 黄辉兰 译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.2 使用C#创建线程

在接下来的内容中,我们将使用Visual Studio 2015作为主要的工具来使用C#编写多线程程序。本节将展示如何创建一个新的C#程序,并在该程序中使用线程。

从微软官方网站可以下载免费的Visual Studio 社区版2015。我们需要它来运行示例代码。

1.2.1 准备工作

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

1.2.2 实现方式

请执行以下步骤来了解如何创建一个新的C#程序,并在其中使用线程:

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

2.确保该工程使用.NET Framework 4.6或以上版本。不过本节的代码在之前的版本中也能正常运行。


e140c593129b03b912c84231f40308541f57a09b

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


c07a01a490ce4f298349ca24b79ffe7c9f068eed

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


d3737ec9f57baab271d74430c2107aa1d819b936

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


80f9b8a398aab07bf408d0004619199843d9556e

6.运行程序。输出如下所示:


7baaebd30a37a91ab217d976fe433ad6a83fede2

1.2.3 工作原理

步骤1和步骤2创建了一个C#的简单的控制台应用程序,使用了.Net Framework 4.0版本。步骤3引用了命名空间System.Threading,该命名空间包含了该程序用到的所有类型。我们使用了C#6.0提供的using static特性,可以使用System.Console类型的静态方法而不用我们指定类型名。

正在执行中的程序实例可被称为一个进程。进程由一个或多个线程组成。这意味着当运行程序时,始终有一个执行程序代码的主线程。

步骤4中定义了方法PrintNumbers,该方法会被主程序和新创建的线程使用。在步骤5中创建了一个线程来运行PrintNumbers方法。当我们构造一个线程时,ThreadStart或ParameterizedThreadStart的实例委托会传给构造函数。我们只需指定在不同线程运行的方法名,而C#编译器则会在后台创建这些对象。然后我们在主线程中以通常的方式启动了一个线程来运行PrintNumbers方法。

结果两组范围为1到10的数字会随机交叉输出。这说明PrintNumbers方法同时运行在主线程和另一个线程中。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
表格存储 SQL 操作实战
表格存储做为一款结构化存储系统,近期发布了新功能 SQL,大幅简化了查询的门槛,用户无需学习繁琐的 SDK,也不用区分表,索引等不同的接口,可以像访问传统的 MySQL 这类数据库一样,使用 SQL 的方式访问云原生的结构化大数据存储。下面我们就来具体实操下,看看查询用起来顺不顺手。
79 0
c++ 多个线程读一个线程写同步
这种情况一般多个线程读是不需要加锁的。就在写的时候需要加锁。 那么要做的就是让不写的时候,读不受同步限制。让多线程自由的读。 这个时候就要用读写锁 boost已经有读写锁,而c++ 14才有读写锁。
775 0
多线程编程学习四(Lock 的使用)
一、前言     本文要介绍使用Java5中 Lock 对象,同样也能实现同步的效果,而且在使用上更加方便、灵活,主要包括 ReentrantLock 类的使用和ReentrantReadWriteLock 类的使用。
796 0
10059
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载