Trang Chủ Phát triển Cuộc gọi phương thức không đồng bộ là gì? - định nghĩa từ techopedia

Cuộc gọi phương thức không đồng bộ là gì? - định nghĩa từ techopedia

Mục lục:

Anonim

Định nghĩa - Gọi phương thức không đồng bộ nghĩa là gì?

Một cuộc gọi phương thức không đồng bộ là một phương thức được sử dụng trong lập trình .NET trả về cho người gọi ngay trước khi hoàn thành quá trình xử lý của nó và không chặn luồng gọi.


Khi một ứng dụng gọi một phương thức không đồng bộ, nó có thể thực thi đồng thời cùng với việc thực thi phương thức không đồng bộ thực hiện nhiệm vụ của nó. Một phương thức không đồng bộ chạy trong một luồng tách biệt với luồng ứng dụng chính. Các kết quả xử lý được tìm nạp thông qua một cuộc gọi khác trên một luồng khác.


Các phương pháp không đồng bộ giúp tối ưu hóa việc thực thi các tài nguyên dẫn đến ứng dụng có thể mở rộng. Chúng được sử dụng để thực thi các tác vụ tốn thời gian như mở các tệp lớn, kết nối với máy tính từ xa, truy vấn cơ sở dữ liệu, gọi các dịch vụ Web và biểu mẫu Web ASP.NET.


Cuộc gọi phương thức không đồng bộ cũng có thể được gọi là gọi phương thức không đồng bộ (AMI).

Techopedia giải thích cuộc gọi phương thức không đồng bộ

Phương thức không đồng bộ khác với phương thức đồng bộ theo cách mà nó trả về từ cuộc gọi. Trong khi một cuộc gọi phương thức không đồng bộ trả về ngay lập tức, cho phép chương trình gọi thực hiện các hoạt động khác, các cuộc gọi phương thức đồng bộ chờ phương thức hoàn thành trước khi tiếp tục với luồng chương trình.


.NET framework có sẵn cơ sở hạ tầng không đồng bộ để bất kỳ phương thức nào cũng có thể được gọi không đồng bộ mà không làm thay đổi mã của nó.


.NET framework cung cấp hai mẫu thiết kế để thực hiện phương thức không đồng bộ, đó là các mẫu sử dụng các đại biểu không đồng bộ (các đối tượng IASyncResult) và các sự kiện. Mẫu của đại biểu không đồng bộ phức tạp hơn và cung cấp tính linh hoạt, điều này làm cho nó phù hợp với các mô hình lập trình phức tạp khác nhau. Mô hình dựa trên sự kiện là đơn giản và nên được sử dụng trong hầu hết các trường hợp.


Trong mẫu đại biểu không đồng bộ, một đối tượng ủy nhiệm sử dụng hai phương thức: BeginInvoke và EndInvoke. BeginInvoke có một danh sách các tham số, tương tự như chức năng được bao bọc của nó, cùng với hai tham số tùy chọn bổ sung; nó trả về đối tượng IAsyncResult. EndInvoke trả về hai tham số (loại ra và loại ref) cùng với đối tượng IAsyncResult. BeginInvoke được sử dụng để bắt đầu cuộc gọi không đồng bộ, trong khi EndInvoke được sử dụng để truy xuất kết quả của cuộc gọi không đồng bộ.


Các mẫu không đồng bộ dựa trên sự kiện sử dụng một lớp có một hoặc nhiều phương thức, được đặt tên là MethodNameAsync, có các phiên bản đồng bộ tương ứng thực thi trên luồng hiện tại. Các mẫu dựa trên sự kiện cũng có thể có một sự kiện MethodNameCompleted và phương thức MethodNameAsync Hủy. Mẫu này cho phép lớp giao tiếp với các hoạt động không đồng bộ đang chờ xử lý bằng mô hình sự kiện ủy nhiệm.


Sau đây là một số mẹo liên quan đến phương pháp không đồng bộ:

  • Để có tính đồng thời cao, phải tránh các phương pháp không đồng bộ
  • Cần cẩn thận trong khi chuyển các tham chiếu đối tượng được chia sẻ
  • EndXXX (được gọi ở cuối hoạt động không đồng bộ) phải được gọi để lấy lại ngoại lệ và tránh thất bại
  • Bằng cách bắt và lưu tất cả các đối tượng ngoại lệ trong phương thức không đồng bộ, nó có thể được truy xuất lại trong cuộc gọi EndXXX
  • Các điều khiển trong giao diện người dùng khởi tạo các hoạt động không đồng bộ chạy dài phải bị vô hiệu hóa nếu chúng chỉ cần thiết cho mục đích đó
  • Các phương pháp không đồng bộ phải được thực hiện với sự hiểu biết về đa luồng và ở đó chúng chứng minh được hiệu quả hơn so với sử dụng các phương pháp đồng bộ.
Cuộc gọi phương thức không đồng bộ là gì? - định nghĩa từ techopedia