欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

c# Task启动多个线程,每个线程启动一个cmd程序,然后执行cmd命令

程序员文章站 2022-03-26 16:38:53
问题描述:接口访问启动多个cmd再执行命令,每个cmd命令一直在运行的例如:ping 192.168.1.122 -t1、Task的简单使用Task task1=Task.Run(() => openCmd();//openCmd是需要运行的方法2、解决一直访问接口,一直开启新线程,(1)定义固定数量的线程 public static Task task1; public static Task task2; public static T...

问题描述:接口访问启动多个cmd再执行命令,每个cmd命令一直在运行的

例如:ping 192.168.1.122 -t
1、Task的简单使用

Task task1=Task.Run(() => openCmd();//openCmd是需要运行的方法

2、解决一直访问接口,一直开启新线程,
(1)定义固定数量的线程

        public static Task task1;
        public static Task task2;
        public static Task task3;
        public static Task[] taskT=new Task[] {task1,task2, task3};

(2)循环访问开启线程,判断是否第一次执行,如果是就开启线程,否就判断线程是否执行完成,如果完成就再次开启这个线程

 for (int i = 0; i < 3; i++)
                {
                    int ip = i + 2;
                    string inputstr = "cmd.exe";
                    string strffpeg="ping 192.168.1.122 -t";
                    //判断是否第一次启动
                    if (taskT[i] != null)
                    {
                        //判读线程是否完成,或者等于null//完成就重新启动
                        if (taskT[i].Status == TaskStatus.RanToCompletion)
                        {
                            taskT[i] = Task.Run(() => OpenCMD(inputstr, strffpeg));
                        }
                    }
                    else
                    {
                        taskT[i] = Task.Run(() => OpenCMD(inputstr, strffpeg));
                    }
                }

3、openCmd
参考:https://blog.csdn.net/chunTF/article/details/103866368?utm_medium=distribute.pc_relevant_bbs_down.none-task–2allfirst_rank_v2rank_v29-5.nonecase&depth_1-utm_source=distribute.pc_relevant_bbs_down.none-task–2allfirst_rank_v2rank_v29-5.nonecase

本文地址:https://blog.csdn.net/qq_40099034/article/details/112240419

相关标签: C# 多线程 cmd