进程与线程
来源:互联网 发布:淘宝与阿里巴巴的关系 编辑:程序博客网 时间:2024/06/02 02:48
进程就是当前运行的应用程序。Process类可以用来控制计算机的所有进程。
比如:获取计算机中当前的所有进程。
static void Main(string[] args) { //获取当前计算机中所有的进程 //用Process类来操作 //Process类的GetProcesses()方法时用来获取当前所有进程的方法,返回Process类型 Process[] pros = Process.GetProcesses(); //遍历每一个进程 foreach (Process item in pros) { Console.WriteLine(item.ToString()); } Console.ReadKey(); }
利用Process对象来打开指定文件:
//利用Process类来打开计算机自带的软件 Process pro = new Process(); //创建一个ProcessStartInfo对象来接收需要打开的文件的地址 ProcessStartInfo psi = new ProcessStartInfo(@"C:\Users\Administrator\Desktop\计算机常用英语单词汇总.txt"); //将文件地址赋值给Process对象的StartInfo属性 pro.StartInfo=psi; pro.Start(); Console.ReadKey();=============================================================================================================
线程:
Thread th; private void button1_Click(object sender, EventArgs e) { //创建一个新线程,用来执行test方法,将要执行的方法当做参数 //由于默认不允许跨线程操作,我们得在程序加载时关闭检测跨线程的方法,到load中写代码 th = new Thread(Test); //将新线程设置为后台线程 th.IsBackground = true; //用Thread对象来执行操作 //如果执行的方法时带参数的,那么该参数必须为object类型 //并且参数放在Start()中 //如果在执行过程中突然关闭程序,可能会导致新线程抛异常 //这是因为在前台线程关闭后可能会有时间差,导致新线程没有及时关闭,而前台进程关闭后释放资源 //造成新线程有无法访问的对象,随后抛异常 //解决办法为,在窗体关闭事件中,判断新线程是否关闭,否,则强制关闭 th.Start(); } void Test() { for (int i = 0; i < 100000; i++) { textBox1.Text =i.ToString(); } } ///<summary> ///加载窗体,关闭跨线程检查 ///</summary> ///<paramname="sender"></param> ///<paramname="e"></param> private void Form1_Load(object sender, EventArgs e) { Control.CheckForIllegalCrossThreadCalls = false; } ///<summary> ///如果在执行过程中突然关闭程序,可能会导致新线程抛异常 ///这是因为在前台线程关闭后可能会有时间差,导致新线程没有及时关闭,而前台进程关闭后释放资源 ///造成新线程有无法访问的对象,随后抛异常 ///解决办法为,在窗体关闭事件中,判断新线程是否关闭,否,则强制关闭 ///</summary> ///<paramname="sender"></param> ///<paramname="e"></param> private void Form1_FormClosing(object sender, FormClosingEventArgs e) { //只有线程对象为null才说明该线程关闭了 if (th != null) { th.Abort(); } }
0 0
- 进程与线程线程
- 进程与线程
- 进程与线程
- 进程与线程
- 进程与线程
- 进程与线程
- 进程与线程
- 进程与线程
- 进程与线程
- 进程与线程
- 进程与线程
- 进程与线程
- 线程与进程
- 线程与进程
- 进程与线程
- 进程与线程
- 线程与进程
- 进程与线程
- 分公司电脑通过大手笔投入
- 分公司电脑通过大手笔投入
- 分公司电脑通过大手笔投入
- 分公司电脑通过大手笔投入
- 华为面试题——一道关于指针方面的编程题(C/C++)
- 进程与线程
- java设计模式之命令模式
- 每日linux命令学习之du df
- Boost多线程编程
- 模拟android Handler线程间通信
- jquery JSON的解析方式
- 马士兵struts2视频教程第二十集
- 分公司电脑通过大手笔投入
- 配置Action(一)——包和命名空间