Vì vậy, một cái gì đó đã làm tôi khó chịu về sự hỗ trợ async mới trong C # 5:
Người dùng nhấn nút bắt đầu hoạt động không đồng bộ. Cuộc gọi trở lại ngay lập tức và bơm thông báo bắt đầu chạy lại - đó là toàn bộ vấn đề.
Vì vậy, người dùng có thể nhấn nút một lần nữa - gây ra lối vào lại. Nếu đây là một vấn đề thì sao?
Trong các bản demo tôi đã thấy, họ vô hiệu hóa nút trước await
cuộc gọi và bật lại sau đó. Đây dường như là một giải pháp rất mong manh trong một ứng dụng thế giới thực.
Chúng ta có nên mã một số loại máy trạng thái chỉ định điều khiển nào phải bị vô hiệu hóa cho một tập hợp các hoạt động đang chạy không? đây có phải là cách tốt hơn không?
Tôi muốn chỉ hiển thị một hộp thoại theo chế độ trong suốt thời gian hoạt động, nhưng điều này có cảm giác hơi giống với việc sử dụng búa tạ.
Bất cứ ai có bất kỳ ý tưởng tươi sáng, xin vui lòng?
BIÊN TẬP:
Tôi nghĩ rằng việc vô hiệu hóa các điều khiển không nên được sử dụng trong khi một hoạt động đang chạy là rất mong manh bởi vì tôi nghĩ nó sẽ nhanh chóng trở nên phức tạp khi bạn có một cửa sổ có nhiều điều khiển trên đó. Tôi thích giữ mọi thứ đơn giản vì nó làm giảm khả năng xảy ra lỗi, cả trong quá trình mã hóa ban đầu và bảo trì sau đó.
Điều gì xảy ra nếu có một tập hợp các điều khiển nên bị vô hiệu hóa cho một hoạt động cụ thể? Và nếu nhiều hoạt động đang chạy đồng thời thì sao?