CodeGym
AI Academy
Khuyến mãi
CodeGym University
Học tập
Khóa học
Bài tập
Khảo sát & Bài kiểm tra
Trò chơi
Trợ giúp
Lịch
Cộng đồng
Người dùng
Diễn đàn
Trò chuyện
Bài viết
Câu chuyện thành công
Hoạt động
Đánh giá
Gói đăng ký
Chủ đề sáng

Bài học

  • Đánh giá
  • Về chúng tôi
Bắt đầu
Bắt đầu học
Bắt đầu học ngay
  • Tiến độ của tôi
  • Khóa học
  • Bản đồ Quest
  • Bài học
  • Dòng dữ liệu bất đồng bộ

    C# SELF
    Cấp độ 62,Bài học 0
    Trong bài giảng này ta xem xét các chuỗi bất đồng bộ trong C#: IAsyncEnumerable<T>, lặp bằng await foreach, huỷ bằng CancellationToken và thuộc tính [ EnumeratorCancellation]. Nói về giải phóng tài nguyên bất đồng bộ với IAsyncDisposable và await using, khi nào cần và cách áp dụng thực tế (đọc file lớn, streaming từ mạng, API server). Tất cả có ví dụ và những lưu ý khi dùng.
    Có sẵn
  • Bộ sinh đồng bộ và bất đồng bộ trong C# ( yield)

    C# SELF
    Cấp độ 62,Bài học 1
    Trong bài giảng này bạn sẽ hiểu cách sinh dữ liệu một cách lazy và an toàn trong C# bằng bộ sinh dựa trên yield: yield return và yield break là gì, compiler xây dựng máy trạng thái cho IEnumerable<T>/ IEnumerator<T> như thế nào, nơi áp dụng bộ sinh trong thực tế, và cách làm việc với luồng bất đồng bộ qua IAsyncEnumerable<T>, await foreach, await using, IAsyncDisposable và CancellationToken. Thêm — những hạn chế, bẫy thường gặp và mẹo dùng hiệu quả.
    Có sẵn
  • Tối ưu hiệu suất: ValueTask

    C# SELF
    Cấp độ 62,Bài học 2
    Trong bài giảng này chúng ta sẽ tìm hiểu cách cấu trúc ValueTask giúp giảm allocations trong các API bất đồng bộ, nơi kết quả thường có sẵn ngay lập tức. So sánh với Task, thảo luận các quy tắc sử dụng, cạm bẫy (ví dụ, await lặp lại), chuyển đổi bằng AsTask() và các kịch bản thực tế với cache. Bạn sẽ biết khi nào giữ lại Task quen thuộc, và khi nào thực sự nên dùng ValueTask.
    Có sẵn
  • Channel: nhà sản xuất–người tiêu thụ ( Channel)

    C# SELF
    Cấp độ 62,Bài học 3
    Trong bài giảng này bạn sẽ làm quen với các kênh bất đồng bộ Channel để xây dựng mẫu "Producer–Consumer": sẽ tìm hiểu xem kênh khác BlockingCollection<T> và ConcurrentQueue<T> như thế nào, học cách dùng WriteAsync, ReadAsync và ReadAllAsync, tạo các pipeline unbounded và bounded, cấu hình options và bàn về các bẫy điển hình khi đóng bằng Complete().
    Có sẵn
  • Tương tác giữa mã bất đồng bộ và đồng bộ

    C# SELF
    Cấp độ 62,Bài học 4
    Trong bài giảng này ta xem cách kết hợp an toàn mã bất đồng bộ và đồng bộ trong C#: tại sao await “phá vỡ” một phương thức, SynchronizationContext và TaskScheduler hoạt động như thế nào, khi nào hợp lý dùng ConfigureAwait(false), và vì sao lại có deadlock khi dùng .Result/ .Wait(). Mình sẽ chỉ ra các pattern thực tế, quy tắc và lỗi phổ biến để UI của bạn vẫn phản hồi tốt, còn server — hiệu năng cao.
    Có sẵn
Học
  • Đăng ký
  • Khóa học Java
  • Trợ giúp bài tập
  • Bảng giá
  • Dự án trò chơi
  • Cú pháp Java
Cộng đồng
  • Người dùng
  • Bài viết
  • Diễn đàn
  • Trò chuyện
  • Câu chuyện thành công
  • Hoạt động
  • Chương trình giới thiệu
Công ty
  • Về chúng tôi
  • Liên hệ
  • Đánh giá
  • Phòng báo chí
  • CodeGym cho EDU
  • Câu hỏi thường gặp
  • Hỗ trợ
CodeGymCodeGym là một khóa học trực tuyến để học lập trình Java từ đầu. Khóa học này là cách hoàn hảo để nắm vững Java cho người mới bắt đầu. Nó chứa 1200+ bài tập với kiểm tra ngay lập tức và phạm vi lý thuyết cơ bản cần thiết về Java. Để giúp bạn thành công trong học tập, chúng tôi đã triển khai một bộ tính năng tạo động lực: bài kiểm tra, dự án lập trình, nội dung về phương pháp học hiệu quả, và hỗ trợ sự nghiệp lập trình viên Java.
Theo dõi chúng tôi
Ngôn ngữ giao diện
English Deutsch Español हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский
Vietnamese
"Lập trình viên được tạo nên, không sinh ra" © 2026 CodeGym
MastercardVisa
"Lập trình viên được tạo nên, không sinh ra" © 2026 CodeGym