簡體   English   中英

c#在task1完成后啟動task2

[英]c# start task2 aftert task1 is completed

所以如果task1 cmd cookie刪除完成后運行task2。 我想刪除 2 或 3 個 cookie,但不在 sam 中,但仍同時運行。

            Task task1 = new Task(() =>
            {
                string cDelete;
                cDelete = "/c Javaws -uninstall & RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2 & echo off | clip ";
                System.Diagnostics.Process.Start("CMD.exe", cDelete);

            });
            Task task2 = new Task(() =>
            {
                string cDelete;
                cDelete = "/c Javaws -uninstall & RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2 & echo off | clip ";
                System.Diagnostics.Process.Start("CMD.exe", cDelete);

            });
            task1.Start();
            if (task1.IsCompleted)
            {
                task2.Start();
            }

直接使用進程。

public static void Main()
{
    try
    {
        using (Process myProcess = new Process())
        {
            myProcess.StartInfo.UseShellExecute = false;
            myProcess.StartInfo.FileName = "cmd.exe";
            myProcess.StartInfo.Arguments  = "/c Javaws -uninstall & RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2 & echo off | clip ";
            myProcess.StartInfo.CreateNoWindow = true;
            myProcess.Start();
            // This code assumes the process you are starting will terminate itself. 
            // Given that is is started without a window so you cannot terminate it 
            // on the desktop, it must terminate itself or you can do it programmatically
            // from this application using the Kill method.
            myProcess.WaitForExit();
        }
    }
    catch (Exception e)
    {
        Console.WriteLine(e.Message);
    }
}

在啟動task2之前,您需要調用task.wait()以確保任務完成

            Task task1 = new Task(() =>
            {
                string cDelete;
                cDelete = "/c Javaws -uninstall & RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2 & echo off | clip ";
                System.Diagnostics.Process.Start("CMD.exe", cDelete);

            });
            Task task2 = new Task(() =>
            {
                string cDelete;
                cDelete = "/c Javaws -uninstall & RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2 & echo off | clip ";
                System.Diagnostics.Process.Start("CMD.exe", cDelete);

            });
            task1.Start();
            task.Wait(); //add this line
            if (task1.IsCompleted)
            {
                task2.Start();
            }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM