ทำความเข้าใจเธรดและงาน
สำรวจเธรดและงานเพื่อจัดการการประมวลผลแบบขนานใน C#
ทำความเข้าใจเธรดและงาน เป็นบทเรียน C# Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 5 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C# Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C# Academy มีบทเรียนทั้งหมด 5 บทเรียน
บทนำเกี่ยวกับการทำงานของเธรดและงาน
ทำความเข้าใจการทำงานของเธรดและงาน
ยินดีต้อนรับสู่บทเรียนถัดไป! ในบทเรียนนี้ คุณจะได้เรียนรู้เกี่ยวกับการทำงานของเธรดและงานใน C# ซึ่งช่วยให้คุณดำเนินการหลายอย่างพร้อมกันเพื่อให้มีประสิทธิภาพดียิ่งขึ้น มาเริ่มกันเลย!

การทำงานของเธรดคืออะไร
การทำงานของเธรด คือกระบวนการดำเนินการหลายอย่างพร้อมกัน เธรดแต่ละรายการจะแสดงลำดับการควบคุมที่แยกจากกันภายในแอปพลิเคชันของคุณ
ประเด็นสำคัญ: การทำงานของเธรดช่วยเพิ่มประสิทธิภาพด้วยการใช้แกนประมวลผลหลายแกนเพื่อดำเนินการพร้อมกัน
การสร้างและเริ่มต้นเธรด
คุณสามารถสร้างและเริ่มต้นเธรดโดยใช้คลาส Thread ตัวอย่าง:
using System;
using System.Threading;
class Program {
static void Main() {
Thread thread = new Thread(PrintNumbers);
thread.Start();
Console.WriteLine("Main thread is running...");
}
static void PrintNumbers() {
for (int i = 1; i <= 5; i++) {
Console.WriteLine(i);
Thread.Sleep(1000); // Pause for 1 second
}
}
}
บทนำเกี่ยวกับงาน
งาน เป็นแนวคิดนามธรรมระดับสูงกว่าสำหรับการเขียนโปรแกรมแบบทำงานพร้อมกันเมื่อเทียบกับเธรด คลาส Task เป็นส่วนหนึ่งของไลบรารีการทำงานแบบขนานของงาน (TPL) ใน C#
ตัวอย่าง: การสร้างและเริ่มต้นงาน:
เคล็ดลับ: งานจัดการได้ง่ายกว่าและมีการจัดการข้อผิดพลาดที่ดีกว่าเธรด
using System;
using System.Threading.Tasks;
class Program {
static void Main() {
Task task = Task.Run(() => {
for (int i = 1; i <= 5; i++) {
Console.WriteLine(i);
Task.Delay(1000).Wait();
}
});
Console.WriteLine("Main thread is running...");
task.Wait(); // Wait for the task to complete
}
}
การใช้ Parallel.For และ Parallel.ForEach
คลาส Parallel ใน C# ช่วยให้คุณดำเนินการวนซ้ำแบบขนานเพื่อให้มีประสิทธิภาพดียิ่งขึ้น ตัวอย่าง:
ประเด็นสำคัญ: ใช้ Parallel.For และ Parallel.ForEach สำหรับงานที่ใช้ข้อมูลจำนวนมากและสามารถดำเนินการพร้อมกันได้
using System;
using System.Threading.Tasks;
class Program {
static void Main() {
Parallel.For(0, 5, i => {
Console.WriteLine($"Processing {i} on thread {Task.CurrentId}");
});
Console.WriteLine("All tasks completed.");
}
}
การจัดการข้อยกเว้นในงาน
คุณสามารถดักจับข้อยกเว้นในงานโดยใช้บล็อก try-catch หรือพร็อพเพอร์ตี Task.Exception ตัวอย่าง:
using System;
using System.Threading.Tasks;
class Program {
static void Main() {
try {
Task task = Task.Run(() => {
throw new InvalidOperationException("Task failed!");
});
task.Wait();
} catch (AggregateException ex) {
Console.WriteLine("Error: " + ex.InnerException.Message);
}
}
}
แบบฝึกหัดท้าทาย
สร้างโปรแกรมที่เริ่มต้นงานหลายรายการเพื่อประมวลผลตัวเลขแบบขนานและแสดงค่ากำลังสองของตัวเลขเหล่านั้น ตัวอย่าง:
using System;
using System.Threading.Tasks;
class Program {
static void Main() {
int[] numbers = { 1, 2, 3, 4, 5 };
Parallel.ForEach(numbers, number => {
Console.WriteLine($"Square of {number}: {number * number}");
});
}
}
แนวทางปฏิบัติที่ดีที่สุดสำหรับการทำงานของเธรดและงาน
ต่อไปนี้คือแนวทางปฏิบัติที่ดีที่สุด:
- เลือกใช้
TaskแทนThreadสำหรับการทำงานพร้อมกันระดับสูง - ใช้คลาส
Parallelสำหรับการดำเนินการที่ใช้ข้อมูลจำนวนมาก - จัดการข้อยกเว้นอย่างเหมาะสมเพื่อให้แอปพลิเคชันมีความทนทาน
- จำกัดจำนวนเธรดหรืองานเพื่อหลีกเลี่ยงการแย่งชิงทรัพยากร
เคล็ดลับ: ใช้การเขียนโปรแกรมแบบอะซิงโครนัสเมื่อการดำเนินการรับส่งข้อมูลเป็นงานหลัก และใช้เธรดหรืองานสำหรับงานที่ใช้ CPU เป็นหลัก
ยอดเยี่ยม!
ขอแสดงความยินดีด้วย! คุณได้เรียนรู้พื้นฐานของการทำงานของเธรดและงานสำหรับการเขียนโปรแกรมแบบทำงานพร้อมกันใน C# แล้ว ในบทเรียนถัดไป เราจะเจาะลึกเรื่องดีลีเกตและนิพจน์ลัมบ์ดา ซึ่งเป็นคุณสมบัติอันทรงพลังสองอย่างสำหรับการเขียนโปรแกรมเชิงฟังก์ชัน มาเขียนโค้ดกันต่อไป!

เรียนรู้ C# ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 93
- บทเรียน
- 346
คำถามที่พบบ่อย
บทเรียน “ทำความเข้าใจเธรดและงาน” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ทำความเข้าใจเธรดและงาน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C# Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C# Academy มีบทเรียนทั้งหมด 5 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ทำความเข้าใจเธรดและงาน”
สำรวจเธรดและงานเพื่อจัดการการประมวลผลแบบขนานใน C# คุณปฏิบัติ C# Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C# Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน C# Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 5 บทเรียน
บทเรียน “ทำความเข้าใจเธรดและงาน” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน C# Academy นี้ได้ไหม
ได้ บทเรียน C# Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เจเนริกส์ใน C#
- Async และ Await: การทำงานกับโค้ดแบบไม่พร้อมกัน
- ทำความเข้าใจเธรดและงาน
- สำรวจตัวแทนและแลมบ์ดา
- ทำความเข้าใจการสะท้อนใน C#