[HICC.VN]

chúng ta đang xem: Async await c# là gì

Facebook Twitter Linkedin

Xem thêm: Văn Bản Quy Phạm Pháp Luật Là Gì, Văn Bản Quy Phạm Pháp Luật

Trang chủ Giới thiệu Đào tạo Học lập trình .NET Java PHP Lập trình di động Công nghệ Database Kiểm thử phần mềm Khóa học cơ sở làm việc đào tạo Lịch khai giảng Tin tức đào tạo Lớp đang học Project học viên Chính sách dành cho học viên Chương trình ưu đãi Tin tuyển dụng, việc làm Đăng ký khóa học Môi trường đào tạo Hình ảnh lớp học Học viên nói về chúng tôi Hồ sơ giảng viên Kiến thức lập trình Bí kíp lập trình Tin tức Tutoirals Diễn đàn Dịch vụ Hỏi đáp Liên hệ

Xem thêm: Auxiliary Là Gì – Trợ động Từ

Async và await trong C# 5.0 +

So với những phương pháp lập trình truyền thông, lập trình bất đồng bộ ra đời nhằm giúp hạn chế nghẽn cổ chai (thuật ngữ bottlenecks) và nâng cao tính phản hồi của toàn ứng dụng.

quan niệm bất đồng bộ hoàn toàn không mới, và được đưa vào sử dụng rất triệt giúp trên những hệ thống đa nhiệm, nhiều lần tối ưu nhất như hệ thống GUI bất kỳ đều đưa vào sử dụng phương pháp lập trình bất đồng bộ. Async và await là công cụ vô cùng hiệu quả giúp khắc phục những vấn đề xử lý bất đồng bộ, cũng có thể nói async và await là một trong những những điểm nhấn của .NET 4.5 và Visual Studio 2015. Hãy cùng xem async và await có gì thú vị nhé.

.NET Framework đưa ra hai từ khóa async và await, đều rất mới mẻ, được giới thiệu khởi động từ phiên bản Visual Studio 2012 (Và từ WP 7.5 SDK), nhằm hỗ trợ việc khắc phục vấn đề xử lý bất đồng bộ. Cặp từ khóa này hỗ trợ chúng ta lập trình rất tối ưu nhất hơn – đồng thời tính tiết kiệm công sức giúp viết, debug và bảo trì.

Async tăng tính phản hồi cho ứng dụng

nhân viên kỹ thuật lập trình bất đồng bộ cực kì thiết yếu cho những phương thức trong số đó có blocking (tức là phải chờ giúp làm xong), ví dụ: lúc ứng dụng có truy cập đến những website, lúc ứng dụng cần đọc multimedia từ bộ nhớ, … Trong một vài trường hợp cụ thể, việc này mắc phải chậm hoặc mắc phải delayed. Nếu những phương thức trên mắc phải block với một process đồng bộ, toàn bộ ứng dụng đều phải dừng lại và đợi. Trong một ứng dụng bất đồng bộ, ứng dụng vẫn cũng có thể tiếp tục vận hành bình thường với những tác vụ khác mà không phụ thuộc vào việc dữ liệu web đã được lấy về xong nhiều lần chưa. Từ đó dẫn tới việc tăng tính phản hồi cho ứng dụng.

Sử dụng async, await không giống nhau ra làm sao

Trước tiên, chúng ta sẽ cùng nhau tìm hiểu một ví dụ: Trong ví dụ này, chúng ta sẽ đi lấy nội dung của file myFile.txt đặt trên web tại đường dẫn http://www.myurl.com/myFile.txt

+ Cách 1: Lập trình đồng bộ

var client = new WebClient();

// Download data.

var textData = client.DownloadString(“http://www.myurl.com/myFile.txt”);

// Write values.

Debug.WriteLine(textData);                                                                                                              

Việc lập trình đồng bộ thông thường, dòng Debug.WriteLine(textData) sẽ được thực hiện ngay lúc dòng phương thức client.DownloadString làm xong. Tuy nhiên, ở process gọi đoạn code trên sẽ phải dừng lại chờ cho tới lúc xử lý xong.

+ Cách 2: Không sử dụng async, await:

void GetWebData()

public void loadHTMLCallback(Object sender, DownloadStringCompletedEventArgs e) var textData = (string)e.Result; // Do cool stuff with result Debug.WriteLine(textData); }

 Với xử lý bất đồng bộ không người sử dụng async await, định nghĩa event handler giúp bắt sự kiện lúc tải xong nội dung của file. Sau đó gọi hàm bất đồng bộ giúp lấy nội dung.

+ Cách 3: Sử dụng async, await

var client = new WebClient()

// Download data.

var textData = await client.DownloadString(“http://www.myurl.com/myFile.txt”);

// Write values.

Debug.WriteLine(textData);     

Điểm không giống nhau

*

Thứ nhất, việc xử lý bất đồng bộ 2 thao tác lấy dữ liệu và hiển thị đều được thực hiện trên 1 thread duy nhất. Đây là điểm không giống nhau giữa lập trình đồng bộ và lập trình bất đồng bộ.

Việc thêm từ khóa await sẽ tách biệt đoạn code phía sau dòng lệnh có chứa await ra giúp thực thi ở 1 thread khác lúc dòng lệnh đó làm xong.

Thứ hai, với việc xử lý bất đồng bộ sử dụng từ khóa async await, chúng ta không cần định nghĩa event handler giúp bắt sự kiện làm xong tác vụ bất đồng bộ. Điều này đồng nghĩa với việc viết code gọn, rất tối ưu nhất debug, bảo trì hơn.

Theo dõi http://thienmaonline.vn giúp tiếp tục theo dõi những loạt bài mới nhất về C# nhé! Tags:

luôn luôn mục: Hỏi Đáp

Nguồn : Tổng hợp

[bvlq_danh_muc]

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

This site uses cookies to offer you a better browsing experience. By browsing this website, you agree to our use of cookies.