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

การเขียนโปรแกรมแบบอะซิงโครนัสคืออะไร
การเขียนโปรแกรมแบบอะซิงโครนัสคืออะไร
การเขียนโปรแกรมแบบอะซิงโครนัส ช่วยให้งานต่าง ๆ ทำงานอย่างอิสระโดยไม่บล็อกเธรดหลัก ซึ่งมีประโยชน์อย่างยิ่งสำหรับงานต่าง ๆ เช่น การอ่านไฟล์ การดึงข้อมูลจากอินเทอร์เน็ต หรือการโต้ตอบกับฐานข้อมูล
ประเด็นสำคัญ: โค้ดแบบอะซิงโครนัสช่วยให้แอปพลิเคชันตอบสนองได้ดีขึ้น โดยเฉพาะในแอปพลิเคชันส่วนติดต่อผู้ใช้และแอปพลิเคชันเซิร์ฟเวอร์
ทำความเข้าใจ async และ await
ทำความเข้าใจ async และ await
async และ await เป็นคีย์เวิร์ดใน C# ที่ช่วยให้การเขียนโปรแกรมแบบอะซิงโครนัสง่ายขึ้น:
- async: ใช้ระบุว่าเมธอดเป็นแบบอะซิงโครนัส
- await: หยุดการทำงานของเมธอดไว้ชั่วคราวจนกว่างานที่รออยู่จะทำงานเสร็จ
ประเด็นสำคัญ: เมธอดแบบอะซิงโครนัสจะส่งคืน Task หรือ Task<T> เสมอ
การสร้างเมธอดแบบอะซิงโครนัส
การสร้างเมธอดแบบอะซิงโครนัส
มาสร้างเมธอดแบบอะซิงโครนัสเพื่อจำลองงานที่ใช้เวลานานกัน ตัวอย่าง:
เคล็ดลับ: ใช้ Task.Delay() เพื่อจำลองความล่าช้าในการดำเนินการแบบอะซิงโครนัส
using System;
using System.Threading.Tasks;
class Program {
static async Task Main() {
Console.WriteLine("Starting task...");
await PerformTask();
Console.WriteLine("Task completed!");
}
static async Task PerformTask() {
await Task.Delay(3000); // Simulates a 3-second delay
Console.WriteLine("Task is running...");
}
}
การส่งคืนค่าจากเมธอดแบบอะซิงโครนัส
การส่งคืนค่าจากเมธอดแบบอะซิงโครนัส
เมธอดแบบอะซิงโครนัสสามารถส่งคืนค่าโดยใช้ Task<T> ตัวอย่าง:
using System;
using System.Threading.Tasks;
class Program {
static async Task Main() {
int result = await CalculateSumAsync(10, 20);
Console.WriteLine("Result: " + result);
}
static async Task<int> CalculateSumAsync(int a, int b) {
await Task.Delay(1000); // Simulates a delay
return a + b;
}
}
การจัดการข้อยกเว้นในโค้ดแบบอะซิงโครนัส
การจัดการข้อยกเว้นในโค้ดแบบอะซิงโครนัส
ใช้ try-catch เพื่อจัดการข้อยกเว้นในเมธอดแบบอะซิงโครนัส ตัวอย่าง:
using System;
using System.Threading.Tasks;
class Program {
static async Task Main() {
try {
await DivideAsync(10, 0);
} catch (Exception ex) {
Console.WriteLine("Error: " + ex.Message);
}
}
static async Task DivideAsync(int a, int b) {
await Task.Delay(1000);
if (b == 0) throw new DivideByZeroException("Cannot divide by zero.");
Console.WriteLine("Result: " + (a / b));
}
}
แบบฝึกหัดท้าทาย
แบบฝึกหัดท้าทาย
สร้างเมธอดแบบอะซิงโครนัสที่ดึงข้อมูลจาก URL และแสดงเนื้อหาของข้อมูลนั้น ตัวอย่าง:
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program {
static async Task Main() {
string url = "https://jsonplaceholder.typicode.com/todos/1";
string data = await FetchDataAsync(url);
Console.WriteLine("Data: " + data);
}
static async Task<string> FetchDataAsync(string url) {
using HttpClient client = new HttpClient();
return await client.GetStringAsync(url);
}
}
แนวทางปฏิบัติที่ดีที่สุดสำหรับการเขียนโปรแกรมแบบอะซิงโครนัส
แนวทางปฏิบัติที่ดีที่สุดสำหรับการเขียนโปรแกรมแบบอะซิงโครนัส
ต่อไปนี้คือแนวทางปฏิบัติที่ดีที่สุด:
- ใช้
asyncและawaitสำหรับงานที่เกี่ยวข้องกับการดำเนินการรับส่งข้อมูลหรือการคำนวณที่ใช้เวลานาน - หลีกเลี่ยงการบล็อกโค้ดแบบอะซิงโครนัสด้วย
.Resultหรือ.Wait() - จัดการข้อยกเว้นเพื่อป้องกันข้อผิดพลาดที่ไม่ได้รับการจัดการ
- ใช้
ConfigureAwait(false)ในโค้ดไลบรารีเพื่อหลีกเลี่ยงภาวะหยุดชะงัก
เคล็ดลับ: ทำให้เมธอดแบบอะซิงโครนัสกระชับและมุ่งเน้นความรับผิดชอบเพียงอย่างเดียว
ยอดเยี่ยม!
ยอดเยี่ยม!
ขอแสดงความยินดีด้วย! คุณได้เรียนรู้วิธีใช้ async และ await เพื่อเขียนโค้ดแบบอะซิงโครนัสใน C# แล้ว ในบทเรียนถัดไป เราจะสำรวจการทำงานของเธรดและงานสำหรับการเขียนโปรแกรมแบบขนาน มาเขียนโค้ดกันต่อไป!
คลิก ดำเนินการต่อ เพื่อไปยังบทเรียนถัดไป

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