Đó là cách tiếp cận của tôi không sử dụng các phương thức và lớp tĩnh trong các hoạt động không đồng bộ - trừ khi một số kỹ thuật khóa được thực hiện để ngăn chặn các điều kiện chủng tộc.Tôi nên sử dụng phương pháp/lớp tĩnh trong các hoạt động không đồng bộ/chờ đợi như thế nào?
Hiện không đồng bộ/chờ đợi đã được đưa vào khung C# 4.5+ - đơn giản hóa các ứng dụng đa luồng và khuyến khích giao diện người dùng đáp ứng.
Tuy nhiên - như một khóa không thể/không nên được đặt trên một phương pháp chờ đợi (và tôi không tranh luận rằng) bây giờ làm cho phương pháp tĩnh sử dụng async/chờ đợi hoàn toàn dư thừa?
Gọi phương thức tĩnh từ nhiều luồng sẽ không sao nếu không có bất kỳ tác dụng phụ nào. –
Nếu một phương pháp có tác dụng phụ thì nó không nên tĩnh ở nơi đầu tiên, vì nó vi phạm các hướng dẫn mà nhà nước có thể thay đổi toàn cục nên tránh. – CodesInChaos
@CodesInChaos Tôi không nghĩ rằng bạn có thể * vi phạm * nguyên tắc ;-) Dù bằng cách nào, điểm tôi đã cố gắng thực hiện là khóa sẽ không được yêu cầu cho hầu hết các phương pháp tĩnh, trừ khi một số loại trạng thái chia sẻ đang bị đột biến. OP đã không cung cấp đủ thông tin về mặt trận đó, và dường như ngụ ý khóa vì nó là tĩnh, không khóa cho quản lý nhà nước. –