C#——多线程

简介: C#——多线程

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动是系统进行资源分配和调度的基本单位,是操作系统结构的基础。用通俗的话来讲:打开一个应用程序就是在操作系统上开启了一个进程进程之间可以相互独立运行,互不干扰。进程之间也可以相互访问、操作。

线程(Thread)是进程中的基本执行单元,操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。—条线程指的是进程中一个单一顶序的控制流,一个进程中可以并发多个线程我们目前写的程序都在主线程中。简单理解线程:就是代码从上到下运行的一条“管道”。

多线程的优点:可以同时完成多个任务;可以使程序的响应速度更快;可以让占用大量处理时间的任务或当前没有进行处理的任务定期将处理时间让给别的任务;可以随时停止任务;可以设置每个任务的优先级以优化程序性能。

线程类: Thread

需要注意的是,使用该线程类时,需要引用命名空间using System.Theading;

下面列举 Thread 类的一些常用属性和方法:

CurrentContext   获取线程正在其中执行的当前上下文。
CurrentCulture   获取或设置当前线程的区域性。
CurrentPrincipal   获取或设置线程的当前负责人(对基于角色的安全性而言)。
CurrentThread   获取当前正在运行的线程。
CurrentUICulture   获取或设置资源管理器使用的当前区域性以便在运行时查找区域性特定的资源。
ExecutionContext   获取一个 ExecutionContext 对象,该对象包含有关当前线程的各种上下文的信息。
IsAlive   获取一个值,该值指示当前线程的执行状态。
IsBackground   获取或设置一个值,该值指示某个线程是否为后台线程。
IsThreadPoolThread   获取一个值,该值指示线程是否属于托管线程池。
ManagedThreadId   获取当前托管线程的唯一标识符。
Name   获取或设置线程的名称。
Priority   获取或设置一个值,该值指示线程的调度优先级。
ThreadState   获取一个值,该值包含当前线程的状态。
public void Abort()  
在调用此方法的线程上引发 ThreadAbortException,以开始终止此线程的过程。调用此方法通常会终止线程。
public static LocalDataStoreSlot AllocateDataSlot()  
在所有的线程上分配未命名的数据槽。为了获得更好的性能,请改用以 ThreadStaticAttribute 属性标记的字段。
public static LocalDataStoreSlot AllocateNamedDataSlot( string name)  
在所有线程上分配已命名的数据槽。为了获得更好的性能,请改用以 ThreadStaticAttribute 属性标记的字段。
public static void BeginCriticalRegion()  
通知主机执行将要进入一个代码区域,在该代码区域内线程中止或未经处理的异常的影响可能会危害应用程序域中的其他任务。
public static void BeginThreadAffinity()  
通知主机托管代码将要执行依赖于当前物理操作系统线程的标识的指令。
public static void EndCriticalRegion()  
通知主机执行将要进入一个代码区域,在该代码区域内线程中止或未经处理的异常仅影响当前任务。
public static void EndThreadAffinity()  
通知主机托管代码已执行完依赖于当前物理操作系统线程的标识的指令。
public static void FreeNamedDataSlot(string name)  
为进程中的所有线程消除名称与槽之间的关联。为了获得更好的性能,请改用以 ThreadStaticAttribute 属性标记的字段。
public static Object GetData( LocalDataStoreSlot slot )  
在当前线程的当前域中从当前线程上指定的槽中检索值。为了获得更好的性能,请改用以 ThreadStaticAttribute 属性标记的字段。
public static AppDomain GetDomain()  
返回当前线程正在其中运行的当前域。


目录
相关文章
|
2月前
|
SQL 开发框架 安全
C#编程与多线程处理
【4月更文挑战第21天】探索C#多线程处理,提升程序性能与响应性。了解C#中的Thread、Task类及Async/Await关键字,掌握线程同步与安全,实践并发计算、网络服务及UI优化。跟随未来发展趋势,利用C#打造高效应用。
|
2月前
|
安全 编译器 C#
C#学习相关系列之多线程---lock线程锁的用法
C#学习相关系列之多线程---lock线程锁的用法
|
2月前
|
Java 调度 C#
C#学习系列相关之多线程(一)----常用多线程方法总结
C#学习系列相关之多线程(一)----常用多线程方法总结
|
2月前
|
C#
C#学习相关系列之多线程---ConfigureAwait的用法
C#学习相关系列之多线程---ConfigureAwait的用法
|
2月前
|
C#
C#学习相关系列之多线程---TaskCompletionSource用法(八)
C#学习相关系列之多线程---TaskCompletionSource用法(八)
|
23天前
|
并行计算 算法 C#
C# Mandelbrot和Julia分形图像生成程序更新到2010-9-14版 支持多线程计算 多核处理器
此文档是一个关于分形图像生成器的介绍,作者分享了个人开发的M-J算法集成及色彩创新,包括源代码和历史版本。作者欢迎有兴趣的读者留言交流,并提供了邮箱(delacroix_xu@sina.com)以分享资源。文中还展示了程序的发展历程,如增加了真彩色效果、圈选放大、历史记录等功能,并分享了几幅精美的分形图像。此外,还提到了程序的新特性,如导入ini文件批量输出图像和更新一批图片的功能。文档末尾附有多张程序生成的高分辨率分形图像示例。
|
1月前
|
大数据 C#
C#实现多线程的几种方式
C#实现多线程的几种方式
|
2月前
|
安全 Java C#
C#多线程详解
C#多线程详解
23 0
|
2月前
|
Java C#
C#学习相关系列之多线程(七)---Task的相关属性用法
C#学习相关系列之多线程(七)---Task的相关属性用法
|
2月前
|
C#
C#学习系列相关之多线程(二)----Thread类介绍
C#学习系列相关之多线程(二)----Thread类介绍