C#关于进程与线程(一)
2014-11-19 14:46
330 查看
进程是程序在内存中的一次运行,是系统进行资源分配的最小单位。一个进程可以包含多个线程。可以简单地理解为操作系统当前运行的执行程序。一般而言,在系统当前运行的执行程序里包括系统管理计算机个体和完成各种操作所必须的程序;用户开启、执行的额外程序等,也可能包含自动运行的非法程序。
线程,也被称为轻量进程,指运行中程序的调度单位。目前大部分平台都支持多线程,允许程序中存在多个线程。由于一个程序的各线程是在相同的地址空间运行的,因此涉及如何共享内存,如何通信等问题,这样便需要处理各线程之间的同步问题,这是多线程编程中的一个难点。
进程和线程是计算机科学专业“操作系统”课程中的重要知识,对此感兴趣的读者可以查阅相关类书籍。本章主要讲解如何在C#中进行进程的管理和线程的应用,不涉及“操作系统”课程中的理论知识。
一、使用进程加载应用程序
进程在C#中由类Process表示,通过Process类的StartInfo中的各个属性值设置来配置进程的相关属性。待属性设置完毕后,可以使用Start方法开始该进程。
using System.Diagnostics;
class program
{
static void Main(string[ ] args)
{
//声明一个进程(Process)变量,用于启动程序
Process p=new Process();
//此处定义了要启动程序的名称
//由于记事本位于系统文件夹内,所以不需要给出完整路径名称
p.StartInfo.FileName= "notepad.exe";
try
{
Console.WriteLine("进程启动中。。。");
p.Start();
}
catch(Exception e)
{
Console.WriteLine("启动失败!");
Console.WriteLine(e.Message);
}
finally
{
p=null;
}
}
}
使用进程不仅可以启动可执行文件(.exe),还可以启动其他类型的文件。下面的步骤介绍了如何启动其他类型的文件
using System.Diagnostics;
class Program
{
static void Main(string[ ] args)
{
//声明一个进程(Process)变量,用于启动程序
Process p=new Process();
//此处定义了要启动程序的名称
//由于记事本位于系统文件夹内,所以不需要给出完整路径名称
p.StartInfo.FileName= @" C:\boot.ini";
try
{
Console.WriteLine("进程启动中。。。");
p.Start();
}
catch(Exception e)
{
Console.WriteLine("启动失败!");
Console.WriteLine(e.Message);
}
finally
{
p=null;
}
}
}
线程,也被称为轻量进程,指运行中程序的调度单位。目前大部分平台都支持多线程,允许程序中存在多个线程。由于一个程序的各线程是在相同的地址空间运行的,因此涉及如何共享内存,如何通信等问题,这样便需要处理各线程之间的同步问题,这是多线程编程中的一个难点。
进程和线程是计算机科学专业“操作系统”课程中的重要知识,对此感兴趣的读者可以查阅相关类书籍。本章主要讲解如何在C#中进行进程的管理和线程的应用,不涉及“操作系统”课程中的理论知识。
一、使用进程加载应用程序
进程在C#中由类Process表示,通过Process类的StartInfo中的各个属性值设置来配置进程的相关属性。待属性设置完毕后,可以使用Start方法开始该进程。
using System.Diagnostics;
class program
{
static void Main(string[ ] args)
{
//声明一个进程(Process)变量,用于启动程序
Process p=new Process();
//此处定义了要启动程序的名称
//由于记事本位于系统文件夹内,所以不需要给出完整路径名称
p.StartInfo.FileName= "notepad.exe";
try
{
Console.WriteLine("进程启动中。。。");
p.Start();
}
catch(Exception e)
{
Console.WriteLine("启动失败!");
Console.WriteLine(e.Message);
}
finally
{
p=null;
}
}
}
使用进程不仅可以启动可执行文件(.exe),还可以启动其他类型的文件。下面的步骤介绍了如何启动其他类型的文件
using System.Diagnostics;
class Program
{
static void Main(string[ ] args)
{
//声明一个进程(Process)变量,用于启动程序
Process p=new Process();
//此处定义了要启动程序的名称
//由于记事本位于系统文件夹内,所以不需要给出完整路径名称
p.StartInfo.FileName= @" C:\boot.ini";
try
{
Console.WriteLine("进程启动中。。。");
p.Start();
}
catch(Exception e)
{
Console.WriteLine("启动失败!");
Console.WriteLine(e.Message);
}
finally
{
p=null;
}
}
}
相关文章推荐
- C#关于进程与线程(三)
- 【c#】关于终止以及删除主进程创建的线程以及进程的方法
- C#关于进程与线程(二)
- C#关于进程与线程(四)
- 网上收集的关于SQL线程、进程、连接、.net连接池等方面的资料
- 关于SQL线程、进程、连接、.net连接池等方面的资料
- 旧话重提_关于vb, vb.net, c#.net下dll远线程注入
- 关于线程和进程的同步问题
- 关于进程和线程『整理』
- 关于appdomain, assembly, 进程,线程的概念体会
- 关于线程、进程之间的数据共享
- 关于c#线程
- 今日学习:关于C#多线程之一——异步委托
- 【日积月累】关于进程 线程和一些常见的多线程概念
- C#参考: 进程、线程与应用程序域(AppDomain) 浅析
- 关于同一进程内不同对话框分线程显示的疑问
- C#关于"该进程无法访问文件,因为该文件正由另一进程使用"的错误的一点心得(示例)
- 关于对继承和派生,进程和线程理解
- 用C#线程技术模拟“生产者-消费者”经典进程同步问题
- 关于static变量的线程间共享,进程间不共享