.Net Framework 4/C# 进程和线程的使用

发布于:2025-06-25 ⋅ 阅读:(19) ⋅ 点赞:(0)

一、进程与进程类(Process)

        每一个正在运行的应用程序都是一个进程。

        获得当前程序中正在运行的进程可以用 Process,它可以实例化对象,还可以通过进程打开一些应用程序,用 Process 类的 Start 方法。

二、线程简介

        每个正在操作系统上运行的应用程序都是一个进程,一个进程可以包括一个或多个线程。线程是操作系统分配处理器时间的基本单元,在进程中可以有多个线程同时执行代码。每个线程都维护异常处理程序、调度优先级和一组系统用于在调度该线程前保存线程上下文的结构。

(一) 单线程简介

        默认情况下,系统为应用程序分配一个主线程,该线程执行程序中以 Main 方法开始和结束的代码。

(二) 多线程简介

        一般情况下,需要用户交互的软件都必须尽可能快地对用户的活动做出反应,以便提供丰富多彩的用户体验,但同时它又必须执行必要的计算,以便尽可能快地将数据呈现给用户,这时可以使用多线程来实现。

三、线程的基本操作

        C# 中对线程进行操作时,主要用到了 Thread 类,该类位于 System.Threading 命名空间下,通过使用 Thread 类,可以对线程进行创建、暂停、恢复、休眠、终止及设置优先权等操作。另外,还可以通过使用 Monitor 类、Mutex 类和 lock 关键字控制线程间的同步执行。

(一) Thread 类

        Thread 类位于 System.Threading 命名空间下,System.Threading 命名空间提供一些可以进行多线程编程的类和接口。除同步线程活动和访问数据的类(Mutex、Monitor、Interlocked 和 AutoResetEvent 等)外,该命名空间还包含一个 ThreadTool 类(它允许用户使用系统提供的线程池)和一个 Timer 类(它在线程池的线程上执行回调方法)。

(二) 创建线程

        创建一个线程,只需将其声明并为其提供线程起始点处的方法委托即可。创建新的线程时,需要使用 Thread 类,该类具有接受一个 ThreadStart 委托或 ParameterizedThreadStart 委托的构造函数,该委托包装了调用 Start 方法时由新线程调用的方法。创建了 Thread 类的对象之后,线程对象已存在并已配置,但并未创建实际的线程,这时,只有在调用 Start 方法后,才会创建实际的线程。

        Start 方法用来使线程被安排执行,它有两种重载形式,例如有:

  • 导致操作系统将当前实例的状态更改为 ThreadState.Running
public void Start()
  •  导致操作系统将当前实例的状态更改为 ThreadState.Running,并选择提供包含线程执行的方法要使用的数据的对象
public void Start(Object parameter)

parameter:一个对象,包含线程执行的方法要使用的数据

        需要注意的是,如果线程已经终止,就无法通过再次调用 Start 方法来重新启动。

        例如有:

Thread th = new Thread(Text);

设置为后台线程
th.IsBackground = true;

此时线程调用的 Text 方法没有参数,调用的是第一种形式
th.Start();						

public void Text()
{
    for(int i =0; i < 10000; i++)
    {
        Console.WriteLi

网站公告

今日签到

点亮在社区的每一天
去签到