งานสามารถถูกมองว่าเป็นวิธีที่สะดวกและง่ายต่อการเรียกใช้งานบางอย่างแบบอะซิงโครนัสและแบบขนาน
โดยปกติแล้วงานคือสิ่งที่คุณต้องการฉันจำไม่ได้ว่าฉันเคยใช้เธรดเป็นอย่างอื่นมากกว่าการทดลองหรือไม่
คุณสามารถทำสิ่งเดียวกันให้สำเร็จโดยใช้เธรด (มีความพยายามมาก) เท่าที่จะทำได้กับงาน
เกลียว
int result = 0;
Thread thread = new System.Threading.Thread(() => {
result = 1;
});
thread.Start();
thread.Join();
Console.WriteLine(result); //is 1
งาน
int result = await Task.Run(() => {
return 1;
});
Console.WriteLine(result); //is 1
โดยปกติแล้วงานจะใช้เธรดพูลซึ่งช่วยประหยัดทรัพยากรเนื่องจากการสร้างเธรดอาจมีราคาแพง คุณสามารถเห็นงานที่เป็นนามธรรมในระดับที่สูงขึ้นเมื่อกระทู้
ในฐานะที่เป็นบทความนี้ชี้ให้เห็นงานดังต่อไปนี้ให้คุณลักษณะที่มีประสิทธิภาพมากกว่าด้าย
งานได้รับการปรับแต่งเพื่อใช้ประโยชน์จากโปรเซสเซอร์มัลติคอร์
หากระบบมีหลายภารกิจระบบจะใช้ประโยชน์จากพูลเธรด CLR ภายในและดังนั้นจึงไม่มีโอเวอร์เฮดที่เกี่ยวข้องกับการสร้างเธรดเฉพาะโดยใช้เธรด ยังลดเวลาการสลับบริบทระหว่างหลายเธรด
- ภารกิจสามารถส่งคืนผลลัพธ์ไม่มีกลไกโดยตรงที่จะส่งคืนผลลัพธ์จากเธรด
รอชุดของงานโดยไม่ต้องสร้างสัญญาณ
เราสามารถเชื่อมโยงงานต่างๆเข้าด้วยกันเพื่อดำเนินการอย่างต่อเนื่อง
สร้างความสัมพันธ์ระหว่างผู้ปกครอง / เด็กเมื่อเริ่มงานหนึ่งจากงานอื่น
ข้อยกเว้นภารกิจลูกสามารถเผยแพร่ไปยังภารกิจหลัก
การยกเลิกการสนับสนุนงานผ่านการใช้โทเค็นการยกเลิก
การใช้งานแบบอะซิงโครนัสนั้นง่ายในการใช้งานโดยใช้ 'async' และ 'คอย'