进程

为了深刻描述程序动态执行过程的性质,人们引入“进程(Process)”概念。

进程的概念主要有两点:

第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。

第二,进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,我们称其为进程。

主要特征

动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的。

并发性:任何进程都可以同其他进程一起并发执行

独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位;

异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进

结构特征:进程由程序、数据和进程控制块三部分组成。

多个不同的进程可以包含相同的程序:一个程序在不同的数据集里就构成不同的进程,能得到不同的结果;但是执行过程中,程序不能发生改变。

线程

通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度。

因而近年来推出的通用操作系统都引入了线程,以便进一步提高系统的并发性,并把它视为现代操作系统的一个重要指标。

使用进程,首先引入命名空间using System.Diagnostics;

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace jincheng
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //Process.Start("calc");//开启计算器进程

            Process.Start("iexplore","http://www.baidu.com");//打开IE浏览器,并打开指定网址

        }

        private void button2_Click(object sender, EventArgs e)
        {
            openFileDialog1.Filter = "应用程序|*.exe";//打开文件对话框中打开文件所规定的文件类型
            DialogResult dr = openFileDialog1.ShowDialog();//打开文件对话框
            if(dr==DialogResult.OK)//如果用户点击确定
            {
                textBox1.Text = openFileDialog1.FileName;//文本框的内容就是打开文件的绝对路径
            }


        }

        private void button3_Click(object sender, EventArgs e)
        {
            Process p = new Process();//实例化process这个类

            ProcessStartInfo pro = new ProcessStartInfo(textBox1.Text);//启动进程时使用的一组值

            p.StartInfo = pro;//将p启动进程指向pro中的文件路径
            try
            {
                p.Start();
            }
            catch
            {
                MessageBox.Show("打开文件有误!");
            }
        }
    }
}

原文地址:https://www.cnblogs.com/fengsantianya/p/5638746.html