winfrom进程、线程、用户控件

时间:2024-11-10 14:35:26

一、进程

一个进程就是一个程序,利用进程可以在一个程序中打开另一个程序。

1、开启某个进程
Process.Start("文件缩写名");

注意:Process要解析命名空间。

2、通过绝对路径开启某个进程
Process p = new Process();
p.StartInfo = new ProcessStartInfo("要打开的程序绝对路径");
p.Start();

3、获取全部开启的进程:返回的是一个Process类的数组
Process[] pro = Process.GetProcesses();

4、杀死进程
对象.Kill();

5、常用的开启网页注册账号:
Process.Start("http://.....");

 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 WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
//限制可以选择的文件类型
openFileDialog1.Filter = "应用程序|*.exe"; DialogResult dr = openFileDialog1.ShowDialog();
if (dr == DialogResult.OK)
{
//将选中文件的路径放到textBox1里
textBox1.Text = openFileDialog1.FileName;
}
} private void button2_Click(object sender, EventArgs e)
{
//先解析Process,实例化。
Process pro = new Process(); //将路径参数实例化出来。
ProcessStartInfo psi = new ProcessStartInfo(textBox1.Text); //设置打开路径需要一个ProcessStartInfo类型参数。
pro.StartInfo = psi; //调用他的打开方法
pro.Start();
} private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
//打开默认浏览器,网址是qq。
Process.Start("http://www.qq.com");
} private void button3_Click(object sender, EventArgs e)
{
//获取电脑上开着的所有进程,返还一个Process数组
Process[] pro= Process.GetProcesses(); //遍历数组中每一个进程
foreach (Process p in pro)
{
//把进程打印在richTextBox1中
richTextBox1.Text += p.ToString() + "\r"; //关闭进程,遍历一个关一个,慎用!
//p.Kill(); }
}
}
}

二、线程

每个程序都有一个主线程,控制窗体。

如果主线程要执行的代码需要占用很多时间,就需要将这些要执行的代码另开一个线程来执行。

Thread要解析命名空间。

//使后台线程可以跨线程访问相应的对象。写在构造函数中。
Control.CheckForIllegalCrossThreadCalls = false;

//开一个新线程参数放方法的委托。 
Thread th1 = new Thread(test1);

//让这个线程变成后台线程,主线程关闭的时候后台线程也关闭。
th1.IsBackground = true;

//开始执行线程
th1.Start();

//线程关闭
th1.Abort();

将该线程要做的事写成一个没有返回值的方法test1。

这个方法可以没有参数,也可以有一个参数但这个参数必须是object类型

如果方法需要一个参数,在线程开始里边把这个参数传过去。

将这个方法委托到该线程上去。

为了防止线程在关闭主窗口时的延迟关闭导致的程序报错,

在窗口的FormClosing事件中判断线程是否关闭了,如果还未关闭关闭线程。

winfrom进程、线程、用户控件

三、用户控件

用户控件,顾名思义就是用户自己组成的控件。

1、制作用户控件:

在项目中添加新建项选用户控件,改个名字,添加。

注意:在用户控件的生成代码中把里面空间的访问修饰符都改为public。

制作完以后,生成一下,然后在工具箱中就会有这个用控件。

要想给用户控件中的控件设置属性内容,只能用代码设置。