C#学习入门-进程简介

1.进程 (资源分配的最小单位)

进程是操作系统的一个基本概念,可以简单理解为“正在运行的程序”。
进程之间是相互独立的。
利用Process类可启动、停止本机或远程进程。

2.线程 (程序执行的最小单位)

一个进程划分为若干个独立的执行流,每个流都称为一个线程。
一个进程中既可以只包含一个线程,也可以同时包含多个线程。

3.是否支持多线程

检查本机电脑是否支持多线程,大于1就可以,一般电脑都支持。

//本机是否支持多线程  大于1就可以
Console.WriteLine(Environment.ProcessorCount);

4. Process类

利用Process类,可以启动和停止本机进程,获取或设置进程优先级、确定进程状态,获取进程列表和各进程的资源占用情况等。
使用Process需要先引入System.Diagnostics命名空间:using System.Diagnostics;
获取进程列表如下:

//进程查看
Process[] myProcesses = Process.GetProcesses();   //本机的进程列表
foreach(Process p in myProcesses)
{
	Console.WriteLine(p.Id);
}
Console.ReadKey();

代码执行结果截图:
在这里插入图片描述

Process类也可以查询远程计算机上进程的相关信息,将ip传入即可。
如:Process[] myProcesses = Process.GetProcess(“192.168.0.1”);

5.启动进程

5.1 启动某个进程

  1. 需要创建Process类的实例
  2. 设置Starlnfo属性((程序名称+传递参数)
  3. 调用Start方法启动该进程
  4. 等待启动成功

5.2 控制图形界面

ProcessWindowStyle枚举指定进程如何显示窗口。

  • Normal(正常窗口)
  • Hidden(隐藏窗口)
  • Minimized(最小化窗口)
  • Maximized(最大化窗口)

5.3 启动进程示例

Process p1 = new Process();
p1.StartInfo.FileName = "Notepad.exe";  //准备执行记事本
p1.StartInfo.Arguments = "Test1234.txt";  //创建或打开的文档
p1.StartInfo.WindowStyle = ProcessWindowStyle.Minimized;//打开方式为图形化界面   最小化
p1.Start();

6.关闭进程

  • 获取进程Handel
    • Process净态的GetProcessByld方法
    • Process净态的GetProcessesByName方法
  • 停止进程
    • Kill方法和CloseMainWindow方法
      前者用于强行终止进程,后者只是"请求"终止进程。
    • HasExited属性
      HasExited属性用于判断启动的进程是否已停止运行。

7.三个进程案例

7.1 winform界面设计

在这里插入图片描述

7.2 代码详情

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
namespace 三个进程
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private Process p1 = new Process();
        private Process p2 = new Process();
        private Process p3 = new Process();

        private void button1_Click(object sender, EventArgs e)
        {
            //Process p1 = new Process();
            p1.StartInfo.FileName = "Notepad.exe";  //准备执行记事本
            p1.StartInfo.Arguments = "Test1234.txt";  //创建或打开的文档
            p1.StartInfo.WindowStyle = ProcessWindowStyle.Minimized;//打开方式为图形化界面   最小化
            p1.Start();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //Process p2 = new Process();
            p2.StartInfo.FileName = "mspaint.exe";  //准备执行画图
            p2.StartInfo.WindowStyle = ProcessWindowStyle.Normal;//打开方式为图形化界面
            p2.Start();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            //Process p3 = new Process();
            p3.StartInfo.FileName = @"B:\php\作业\实训二.docx";  //准备执行实训二文档  @"绝对路径"
            p3.StartInfo.WindowStyle = ProcessWindowStyle.Normal;//打开方式为图形化界面
            p3.Start();
        }
        private void button4_Click(object sender, EventArgs e)
        {
            if (!p1.HasExited)       //如果还没有关闭,进行关闭
            {
                p1.CloseMainWindow();      //kill  强制关闭  Close  请求终止进程
            }
            if (!p2.HasExited)
            {
                p2.CloseMainWindow();
            }
            if (!p3.HasExited)
            {
                p3.CloseMainWindow();
            }
        }
    }
    
}

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值