Tôi nhầm lẫn về sự khác biệt giữa việc gửi các mục qua Post() hoặc SendAsync(). Sự hiểu biết của tôi là trong mọi trường hợp khi một mục đạt đến bộ đệm đầu vào của một khối dữ liệu, điều khiển được trả về ngữ cảnh gọi, đúng không? Vậy tại sao tôi lại cần SendAsync? Nếu giả định của tôi là không đúng thì tôi tự hỏi, ngược lại, tại sao bất cứ ai sẽ sử dụng Post() nếu toàn bộ ý tưởng sử dụng các khối dữ liệu là thiết lập một môi trường đồng thời và không đồng bộ.TPL Dataflow, sự khác biệt chức năng giữa Post() và SendAsync() là gì?
Tôi hiểu tất nhiên sự khác biệt về mặt kỹ thuật trong bài viết đó() trả về một bool trong khi SendAsync trả về một nhiệm vụ đang chờ của bool. Nhưng những gì có ý nghĩa gì? Khi nào sự trở lại của một bool (mà tôi hiểu là một xác nhận cho dù mục đã được đặt trong hàng đợi của khối dữ liệu hay không) bao giờ bị trì hoãn? Tôi hiểu ý tưởng chung của khung công tác đồng bộ async/await nhưng ở đây nó không có ý nghĩa gì cả bởi vì khác với bool kết quả của bất kỳ thứ gì được thực hiện cho mục được chuyển vào không bao giờ được trả về người gọi mà thay vào đó được đặt trong "out-queue" và được chuyển tiếp đến các khối dữ liệu được liên kết hoặc bị loại bỏ.
Và có sự khác biệt về hiệu suất giữa hai phương pháp khi gửi các mục không?
ok nhưng đưa ra lời giải thích của bạn, thì logic đằng sau 'Nhiệm vụ' là gì? Nếu nó không thể gửi ngay lập tức do hoãn nhưng nhiệm vụ hoàn thành sau đó whats sự khác biệt giữa bool là đúng và sai? –
Khối cuối cùng có thể quyết định từ chối thông báo đó (ví dụ: nếu bạn 'Hoàn thành 'khối), trong trường hợp đó kết quả của tác vụ sẽ là' false'. Xem câu trả lời được cập nhật. –
tuyệt vời, điều này bây giờ làm cho cảm giác hoàn toàn, khả năng đó hoàn toàn trượt tâm trí của tôi. Cảm ơn rất nhiều. –