try
{
//进程任务调度
using (Process myProcess = new Process())
{
List<Task> TaskList = new List<Task>();
Task task1 = new Task(() =>
{
? ? Task.Delay(TimeSpan.FromSeconds(4));
? ? var processName = "C:\\Users\\shil\\AppData\\Local\\Postman\\Postman.exe";
? ? RunProcess(processName);
});
Task task2 = new Task(() =>
{
? ? Task.Delay(TimeSpan.FromSeconds(3));
? ? var processName = "C:\\Program Files (x86)\\Tencent\\QQ\\Bin\\QQScLauncher.exe";
? ? RunProcess(processName);
});
Task task3 = new Task(() =>
{
? ? Thread.Sleep(200);
? ? Console.WriteLine("task3");
});
Task task4 = new Task(() =>
{
? ? Thread.Sleep(100);
? ? Console.WriteLine("task4");
});
TaskList.Add(task1);
TaskList.Add(task2);
TaskList.Add(task3);
TaskList.Add(task4);
foreach (Task task in TaskList)
{
? ? task.Start();
? ? task.Wait();
}
? ? ? ? //终止
? ? ? ? //KillProcess("Postman");
? ? }
}
catch (Exception e)
{
? ? Console.WriteLine(e.Message);
}
void RunProcess(string processName)
{
? ? Process myProcess = new Process();
? ? //进程创建,执行?
? ? myProcess.StartInfo.UseShellExecute = false;
? ? // You can start any process, HelloWorld is a do-nothing example.
? ? myProcess.StartInfo.FileName = processName;
? ? myProcess.StartInfo.CreateNoWindow = true;
? ? myProcess.Start();
}
void KillProcess(string processName)
{
? ? //进程关闭
? ? Process[] myproc = Process.GetProcesses();
? ? foreach (Process item in myproc)
? ? {
? ? ? ? if (item.ProcessName == processName)
? ? ? ? {
? ? ? ? ? ? item.Kill();
? ? ? ? ? ? item.WaitForExit(); // possibly with a timeout
? ? ? ? }
? ? }
}