一 WinForm应用程序简介
1、winform应用程序是一种智能客户端技术,我们可以使用winform应用程序帮助我们获得信息或者传输信息等。
2、属性
Name:在后台要获得前台的控件对象,需要使用Name属性。
visibile:指示一个控件是否可见。
Enabled:指示一个控件是否可用。
3、事件: 发送一件事情。
注册事件:
触发事件:
二 进程
获得当前程序中正在运行的进程
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 进程
{
internal class Program
{
static void Main(string[] args)
{
//获得当前程序中所有正在运行的进程
Process[] pros = Process.GetProcesses();
foreach(var item in pros)
{
item.Kill();
Console.WriteLine(item);
}
Console.ReadKey();
}
}
}
通过进程打开一些应用程序
Process.Start("calc");
Process.Start("mspaint");
Process.Start("notepad");
Process.Start("iexplore", "http://www.baidu.com");
通过一个进程打开指定的文件
我们可以把计算机中每个运行的应用程序都当做一个进程。而一个进程又是由多个线程组成的。
单线程给我们带来的问题。
① 让计算机“同时”做多件事情,节约时间。
② 多线程可以让一个程序“同时”处理多个事情。
③ 后台运行程序,提高程序的运行效率,也不会使主界面出现无响应的情况。
④ 获得当前线程和当前进程。
1 前台线程和后台线程
前台线程:只有所有的前台线程都关闭才能完成程序关闭。
后台线程:只要所有的前台现成接收,后台线程自动结束。
2 产生一个线程的4步骤
① 编写产生线程所要执行的方法;
②引用System.Threading命名空间;
③ 实例化Thread类,并引入一个指向线程所要运行方法的委托。(这时候这个线程已经产生,但是还没有运行)
④ 调用Thread实例的Start方法,标记该线程可以被CPU执行,但具体执行时间由CPU决定。
3 在.NET下,是不允许跨线程的访问。
4 Thread类的一些重要成员(*)
① Start()启动线程(告诉CPU我可以被执行,具体什么时候执行,由CPU决定)。
Abort()终止线程 终止完成之后不能再Start();
Thread.Sleep()镜头方法,可以使当前线程停止一段时间运行。
Name线程名;
Thread.CurrentThread获得当前的线程引用。
private void Form1_Load(object sender, EventArgs e)
{
//取消跨线程的访问
Control.CheckForIllegalCrossThreadCalls=false;
}