Tôi đang theo dõi this tutorial để gửi email từ vai trò web Azure của tôi bằng SendGrid.Gửi email bằng SendGrid trên Azure bằng cách sử dụng đồng bộ hóa C#, đang chờ
Đây là phần có liên quan từ hướng dẫn:
// Create credentials, specifying your user name and password.
var credentials = new NetworkCredential("username", "password");
// Create an REST transport for sending email.
var transportREST = REST.GetInstance(credentials);
// Send the email.
transportREST.Deliver(myMessage);
Dường như với tôi rằng transportREST.Deliver
chức năng là đồng bộ. Kể từ khi nó thực hiện IO tôi muốn sử dụng mới NET 4.5 async, chờ đợi thay vào đó (tất cả các mã khác của tôi là hoàn toàn không đồng bộ). Điều này có thể không? Có một API async cho SendGrid hoặc một số cách để bọc cuộc gọi hiện tại?
“hoặc một số cách để quấn gọi hiện” Bạn không thể quấn phương pháp đồng bộ để làm cho nó không đồng bộ. – svick
@svick Tôi biết, nhưng nếu tôi sinh ra một luồng mới cho bit chặn và async trên nó, điều này có thể tốt hơn một chút và miễn phí máy chủ thread-pool của tôi để xử lý các máy khách khác không đồng bộ .. điều này có tốt hơn là chặn không? hoặc có thể có một số chuỗi công việc làm việc về việc gửi các email chặn này và thêm vào hàng đợi của nó .. – talkol
Không, thực sự điều đó sẽ không giúp ích gì. Các chủ đề có trọng lượng tương đối nặng và tạo một luồng chỉ cho thao tác này có khả năng sẽ làm cho hiệu suất của bạn tồi tệ hơn. Nó không phải là tốt hơn cảm ơn chặn, bởi vì nó * là * chặn. – svick