前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#-进程类-多线程

C#-进程类-多线程

作者头像
用户9857551
发布2022-06-28 08:48:19
2520
发布2022-06-28 08:48:19
举报
文章被收录于专栏:Angular学习规划

进程类Process

代码语言:javascript
复制
Console.WriteLine("Hello World!");
            Process[] pros = Process.GetProcesses();
            foreach (var item in pros)
            {
                //获得当前正在运行的进程
                //Console.WriteLine(item);
                //杀死进程
                //item.Kill();
            }
            //通过进程打开程序
            //Process.Start("calc");
            通过进程打开指定的文件
            //ProcessStartInfo psi = new ProcessStartInfo(@"C:\Users\H0772690\Desktop\TC.exe");
            //创建进程对象
            //Process p = new Process();
            //p.StartInfo = psi;
            //p.Start();
            //p.StartInfo();
            Console.ReadKey();
        }

一个进程需要多个线程完成 一个进程是由多个线程组成的。 前台线程:只有所有的前台线程都关闭才能完成程序关闭。 后台线程:只要所有的前台线程结束,后台线程自动结束。 在.net下,是不允许跨线程的访问。 可以让系统不检测线程是否跨线程。

代码语言:javascript
复制
Control.CheckForIllegalCrossThreadCalls = false;

线程休眠:以毫秒为单位

代码语言:javascript
复制
Thread.Sleep(300);

示例:

代码语言:javascript
复制
private void button1_Click(object sender, EventArgs e)
        {
            //创建一个线程执行这个方法
            th = new Thread(Test);
            //标记这个线程装备就绪了可以随时被执行 具体啥时候执行执行这个线程由CPU决定
            //將线程设置为后台线程
            th.IsBackground = true;
            th.Start();
        }

        private void Test() {
            for (int i = 0; i < 100000; i++)
            {
                //Console.WriteLine(i);
                textBox1.Text = i.ToString();//在.net下,是不允许跨线程的访问。
                //解决方法不让系统检查
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //取消跨线程的访问  不让他检查了
            Control.CheckForIllegalCrossThreadCalls = false;
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            //当你点击关闭窗体的时候,判断新线程是否为null
            if (th != null)
            {
                //结束这个线程
                th.Abort();
                //线程被abort 就不能被启动了
            }
        }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-12-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 进程类Process
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档