1.啟動任務
“專業(yè)、務實、高效、創(chuàng)新、把客戶的事當成自己的事”是我們每一個人一直以來堅持追求的企業(yè)文化。 成都創(chuàng)新互聯(lián)是您可以信賴的網(wǎng)站建設服務商、專業(yè)的互聯(lián)網(wǎng)服務提供商! 專注于成都網(wǎng)站建設、成都網(wǎng)站設計、軟件開發(fā)、設計服務業(yè)務。我們始終堅持以客戶需求為導向,結合用戶體驗與視覺傳達,提供有針對性的項目解決方案,提供專業(yè)性的建議,創(chuàng)新互聯(lián)建站將不斷地超越自我,追逐市場,引領市場!
class Program
{
static void Main(string[] args)
{
//三種啟動任務方式
//第一種
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);
}
}
2,連續(xù)任務
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);
}
}
3,任務的層次結構
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任務狀態(tài):Created(該任務已初始化,但尚未被計劃)
t.Start();
Console.WriteLine("a1過程:{0}", t.Status);//a2任務狀態(tài):WaitingToRun(該任務已被計劃執(zhí)行,但尚未開始執(zhí)行)
Thread.Sleep(3000);
Console.WriteLine("a1結束:{0}", t.Status);//a2任務狀態(tài):RanToCompletion(成功執(zhí)行了任務)
}
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);
}
} 
4,任務的結束
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();
}
} 
============================續(xù).......................
任務類似于線程
| 成員名稱 | 說明 |
|---|---|
| Canceled | 該任務已通過對其自身的 CancellationToken 引發(fā) OperationCanceledException 對取消進行了確認,此時該標記處于已發(fā)送信號狀態(tài);或者在該任務開始執(zhí)行之前,已向該任務的 CancellationToken 發(fā)出了信號。有關詳細信息,請參閱任務取消。 |
| Created | <?xml:namespace prefix="[default]" xhtml="" ns="http://www.w3.org/1999/xhtml">該任務已初始化,但尚未被計劃。?xml:namespace> |
| Faulted | 由于未處理異常的原因而完成的任務。 |
| RanToCompletion | 已成功完成執(zhí)行的任務。 |
| Running | 該任務正在運行,但尚未完成。 |
| WaitingForActivation | 該任務正在等待 .NET Framework 基礎結構在內(nèi)部將其激活并進行計劃。 |
| WaitingForChildrenToComplete | 該任務已完成執(zhí)行,正在隱式等待附加的子任務完成。 |
| WaitingToRun | 該任務已被計劃執(zhí)行,但尚未開始執(zhí)行。 |
Task t = new Task(() =>
{
Thread.Sleep(10000);
Console.WriteLine("Task:{0}", Task.CurrentId);
Console.WriteLine("thread:{0}", Thread.CurrentThread.ManagedThreadId);
});
//開始執(zhí)行任務
t.Start();
//等待任務完成(線程阻塞)
t.Wait();
//當處理完成任務之后輸出
if (t.Status == TaskStatus.RanToCompletion)
Console.WriteLine("Main:{0}", Thread.CurrentThread.ManagedThreadId);
Console.ReadKey();
網(wǎng)站欄目:任務
本文路徑:http://www.chinadenli.net/article10/pgcpgo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、標簽優(yōu)化、定制網(wǎng)站、電子商務、響應式網(wǎng)站、面包屑導航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)