C# 多线程

来源:互联网 发布:林忆莲 都市触觉 知乎 编辑:程序博客网 时间:2024/06/10 11:24

开启和关闭多线程,例程如下:

using System;using System.Collections.Generic;using System.Linq;using System.Diagnostics;using System.Text;namespace calcDemo{    class ProcessDemo    {        public void startProcess(int n)        {            Process p;            for (int i = 0; i < n; i++)            {                p = Process.Start("calc.exe");                Console.WriteLine("已经运行{0}个进程",i+1);            }        }        public void exitProcess()        {            Process[] ps = Process.GetProcessesByName("calc");            foreach (Process p in ps)            {                Console.WriteLine("回车杀死一个进程");                Console.ReadLine();                p.Kill();            }        }    }    class Program    {        static void Main(string[] args)        {            ProcessDemo pd = new ProcessDemo();            pd.startProcess(3);             pd.exitProcess();        }    }}

类似,也可以将这种思想用在其他进程,例如,mspaint(画图),我们将相关代码用在windows窗体设计,如下:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Diagnostics;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsApplication2{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)        {            Process.Start("mspaint.exe");        }        private void button2_Click(object sender, EventArgs e)        {            Process[] mspaintProcess = Process.GetProcessesByName("mspaint");            foreach (Process p in mspaintProcess)                p.CloseMainWindow();        }    }}

kill是强制终止,CloseMainWindow是请求终止,但不强求应用程序退出。


0 0