溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

任務(wù)

發(fā)布時間:2020-04-09 17:26:32 來源:網(wǎng)絡(luò) 閱讀:345 作者:1473348968 欄目:編程語言

1.啟動任務(wù)

    class Program
    {
        static void Main(string[] args)
        {
            //三種啟動任務(wù)方式
            //第一種
            TaskFactory tf1 = new TaskFactory();
            Task t1 = tf1.StartNew(TaskMethod);
            //第二種
            Task t2 = Task.Factory.StartNew(TaskMethod);
            //第三種
            Task t3 = new Task(TaskMethod);
            t3.Start();
            Console.ReadKey();
        }
        private static void TaskMethod()
        {
            Console.WriteLine("Task ID:{0}", Task.CurrentId);
        }
    }

任務(wù)

2,連續(xù)任務(wù)

     class Program
    {
        static void Main(string[] args)
        {
            Task t1 = new Task(GetTask);
            Task t2 = t1.ContinueWith(NewTask);
            Task t3 = t2.ContinueWith(NewTask2);
            t1.Start();
            Console.ReadKey();
        }
        private static void GetTask()
        {
            Console.WriteLine("GetTask:{0}", Task.CurrentId);
            Thread.Sleep(1000);
        }
        private static void NewTask(Task t)
        {
            Console.WriteLine("NewTask:{0},pTask:{1}", Task.CurrentId, t.Id);
        }
        private static void NewTask2(Task t)
        {
            Console.WriteLine("NewTask2:{0},pTask:{1}", Task.CurrentId, t.Id);
        }
    }

任務(wù)

 

3,任務(wù)的層次結(jié)構(gòu)

    class Program
    {
        static void Main(string[] args)
        {
            a1();
            Console.ReadKey();
        }

        private static void a1()
        {
            Task t = new Task(a2);
            Console.WriteLine("a1開始:{0}", t.Status);//a2任務(wù)狀態(tài):Created(該任務(wù)已初始化,但尚未被計劃)
            t.Start();
            Console.WriteLine("a1過程:{0}", t.Status);//a2任務(wù)狀態(tài):WaitingToRun(該任務(wù)已被計劃執(zhí)行,但尚未開始執(zhí)行)
            Thread.Sleep(3000);
            Console.WriteLine("a1結(jié)束:{0}", t.Status);//a2任務(wù)狀態(tài):RanToCompletion(成功執(zhí)行了任務(wù))
        }
        private static void a2()
        {
            Console.WriteLine("a2:{0}", Task.CurrentId);
            Task t = new Task(a3);
            t.Start();
        }
        private static void a3()
        {
            Console.WriteLine("a3:{0}", Task.CurrentId);
        }
    }

 任務(wù)

 

4,任務(wù)的結(jié)束

    class Program
    {
        static void Main(string[] args)
        {
            Task<string> t = new Task<string>(GetString, "你好");
            t.Start();
            Console.WriteLine(t.Result);
            Console.ReadKey();
        }
 
        private static string GetString(object s)
        {
            return s.ToString();
        }
    }

 任務(wù)

 

============================續(xù).......................

任務(wù)類似于線程

 TaskStatus 枚舉
成員名稱說明
Canceled該任務(wù)已通過對其自身的 CancellationToken 引發(fā) OperationCanceledException 對取消進(jìn)行了確認(rèn),此時該標(biāo)記處于已發(fā)送信號狀態(tài);或者在該任務(wù)開始執(zhí)行之前,已向該任務(wù)的 CancellationToken 發(fā)出了信號。有關(guān)詳細(xì)信息,請參閱任務(wù)取消
Created<?xml:namespace prefix="[default]" xhtml="" ns="http://www.w3.org/1999/xhtml">該任務(wù)已初始化,但尚未被計劃。?xml:namespace>
Faulted由于未處理異常的原因而完成的任務(wù)。
RanToCompletion已成功完成執(zhí)行的任務(wù)。
Running該任務(wù)正在運(yùn)行,但尚未完成。
WaitingForActivation該任務(wù)正在等待 .NET Framework 基礎(chǔ)結(jié)構(gòu)在內(nèi)部將其激活并進(jìn)行計劃。
WaitingForChildrenToComplete該任務(wù)已完成執(zhí)行,正在隱式等待附加的子任務(wù)完成。
WaitingToRun該任務(wù)已被計劃執(zhí)行,但尚未開始執(zhí)行。
            Task t = new Task(() =>
            {
                Thread.Sleep(10000);
                Console.WriteLine("Task:{0}", Task.CurrentId);
                Console.WriteLine("thread:{0}", Thread.CurrentThread.ManagedThreadId);
            });
            //開始執(zhí)行任務(wù)
            t.Start();
            //等待任務(wù)完成(線程阻塞)
            t.Wait();
            //當(dāng)處理完成任務(wù)之后輸出
            if (t.Status == TaskStatus.RanToCompletion)
                Console.WriteLine("Main:{0}", Thread.CurrentThread.ManagedThreadId);
 
            Console.ReadKey();

任務(wù)

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI