首页 > 开发 > 综合 > 正文

深入浅析WinForm 进程、线程及区别介绍

2020-04-24 21:07:43
字体:
来源:转载
供稿:网友

一、进程

进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。

它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体。

Process 类,用来操作进程。

命名空间:using System.Diagnostics;

Process.Start("calc");   //打开计算器Process.Start("mspaint");   //打开画图Process.Start("iexplore" , "http://www.baidu.com");  //打开浏览器并指定地址

(一)通过一个进程,打开指定的文件:

1.创建进程对象

Process p = new Process();

2.创建一个StartInfo对象,是指定带盘符的路径。

ProcessStartInfo psi = new ProcessStartInfo(@"C:/user/.....);

3.进程指定及开始

p.StartInfo = psi; //指定路径p.Start(); //开始进程

(二)通过文件选择框让用户自己选择所需要打开的程序并打开:

private void button1_Click(object sender, EventArgs e){//这是选择文件的类型openFileDialog1.Filter = "应用程序|*.exe";//显示对话框并且判断用户有没有选中文件if (openFileDialog1.ShowDialog() == DialogResult.OK){//取文件路径string path = openFileDialog1.FileName;//创建一个新的进程Process p = new Process();//制造进程的启动信息ProcessStartInfo psf = new ProcessStartInfo(path);//设置该进程的执行信息p.StartInfo = psf;//启动进程p.Start();} } 

例子:注销

//这个path就是你要调用的exe程序的绝对路径string path = Application.StartupPath;//获取自身exe或dll的文件名路径string s = System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.FullyQualifiedName;private void button2_Click(object sender, EventArgs e){//打开该程序//取该程序文件的路径//string path = Application.StartupPath;string path = System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.FullyQualifiedName;//造一个进程Process p = new Process();//造一个进程的启动信息ProcessStartInfo ps = new ProcessStartInfo(path);//设置进程启动信息p.StartInfo = ps;//启动进程p.Start();//关闭程序this.Close();} 

例:窗口实现鼠标拖动

private int x;private int y;private void pictureBox1_MouseDown(object sender, MouseEventArgs e){//鼠标点击时的XY坐标x = e.X;y = e.Y;}private void pictureBox1_MouseMove(object sender, MouseEventArgs e){//判断鼠标按下的是左键if (e.Button == System.Windows.Forms.MouseButtons.Left){//边距=当前的距离+移动的距离this.Left = this.Left+(e.X - x);this.Top = this.Top +(e.Y - y);}} 

二、线程

线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表