进程类Process与多线程Thread

进程类(Process)的基本操作:

//通过进程类查询系统所有进程
            Process[] pros = Process.GetProcesses();
            foreach (var item in pros)
            {
                Console.WriteLine(item);
            }
            
            //通过进程打开一些应用程序
            Process.Start("calc");
            Process.Start("iexplore", "http://www.baidu.com");

            //通过一个进程打开指定的文件
            ProcessStartInfo psi = new ProcessStartInfo(@"C:\Users\Administrator\Desktop\ado.net简单记录.txt");
            Process p = new Process();
            p.StartInfo=psi;
            p.Start();
            Console.ReadKey();

多线程:

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

namespace 多线程
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        Thread th;
        private void button1_Click(object sender, EventArgs e)
        {
            //创建一个线程,执行Test方法
             th = new Thread(Test);
            //将线程设置为后台线程,只要所有前台线程关闭,后台自动关闭
            th.IsBackground = true;
            //标记此线程可以随时被执行,具体何时,看CPU决定
            th.Start();
        }

        public void Test()
        {
            for (int i = 0; i < 10000; i++)
            {
                //Console.WriteLine(i);
                textBox1.Text = i.ToString();
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //取消跨线程访问的限制
            Control.CheckForIllegalCrossThreadCalls = false;
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            //当点击关闭窗口时,判断线程是否还在运行
            if (th != null)
            {
                //如果在,则手动终止,注意:终止之后不能再次启动。
                th.Abort();//
            }
        }
    }
}


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。