0Pricing
C# Academy · บทเรียน

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: การทำงานกับโค้ดแบบไม่พร้อมกัน — ภาพประกอบ 1

การเขียนโปรแกรมแบบอะซิงโครนัสคืออะไร

การเขียนโปรแกรมแบบอะซิงโครนัสคืออะไร

การเขียนโปรแกรมแบบอะซิงโครนัส ช่วยให้งานต่าง ๆ ทำงานอย่างอิสระโดยไม่บล็อกเธรดหลัก ซึ่งมีประโยชน์อย่างยิ่งสำหรับงานต่าง ๆ เช่น การอ่านไฟล์ การดึงข้อมูลจากอินเทอร์เน็ต หรือการโต้ตอบกับฐานข้อมูล

ประเด็นสำคัญ: โค้ดแบบอะซิงโครนัสช่วยให้แอปพลิเคชันตอบสนองได้ดีขึ้น โดยเฉพาะในแอปพลิเคชันส่วนติดต่อผู้ใช้และแอปพลิเคชันเซิร์ฟเวอร์

ทำความเข้าใจ 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: การทำงานกับโค้ดแบบไม่พร้อมกัน — ภาพประกอบ 10

คำถามที่พบบ่อย

บทเรียน “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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เจเนริกส์ใน C#
  2. Async และ Await: การทำงานกับโค้ดแบบไม่พร้อมกัน
  3. ทำความเข้าใจเธรดและงาน
  4. สำรวจตัวแทนและแลมบ์ดา
  5. ทำความเข้าใจการสะท้อนใน C#
← กลับไปที่ C# Academy