Tôi đang cố gắng hiểu vòng lặp sự kiện là gì. Thông thường lời giải thích là trong một vòng lặp sự kiện, bạn làm một cái gì đó cho đến khi bạn được thông báo rằng một sự kiện đã xảy ra. Sau đó, bạn xử lý sự kiện và tiếp tục làm những gì bạn đang làm trước đó.
Để ánh xạ định nghĩa trên với một ví dụ. Tôi có một máy chủ 'lắng nghe' trong một vòng lặp sự kiện và khi phát hiện ra kết nối ổ cắm, dữ liệu từ nó sẽ được đọc và hiển thị, sau đó máy chủ sẽ tiếp tục / bắt đầu nghe như trước đây.
Tuy nhiên, sự kiện này xảy ra và chúng tôi nhận được thông báo "giống như vậy" là rất nhiều để tôi xử lý. Bạn có thể nói: "Không phải như thế" bạn phải đăng ký người nghe sự kiện ". Nhưng những gì một người nghe sự kiện nhưng một chức năng mà vì lý do nào đó không trở lại. Có phải trong vòng lặp riêng của nó, chờ đợi để được thông báo khi một sự kiện xảy ra? Người nghe sự kiện cũng nên đăng ký một người nghe sự kiện? Nó kết thúc ở đâu?
Các sự kiện là một sự trừu tượng tốt đẹp để làm việc với, tuy nhiên chỉ là một sự trừu tượng hóa. Tôi tin rằng cuối cùng, bỏ phiếu là không thể tránh khỏi. Có lẽ chúng tôi không làm điều đó trong mã của mình, nhưng các cấp thấp hơn (triển khai ngôn ngữ lập trình hoặc HĐH) đang làm điều đó cho chúng tôi.
Về cơ bản, nó đi xuống mã giả sau đây đang chạy ở một nơi đủ thấp để không phải chờ đợi bận rộn:
while(True):
do stuff
check if event has happened (poll)
do other stuff
Đây là sự hiểu biết của tôi về toàn bộ ý tưởng, và tôi muốn nghe nếu điều này là chính xác. Tôi cởi mở khi chấp nhận rằng toàn bộ ý tưởng là sai về cơ bản, trong trường hợp đó tôi muốn giải thích chính xác.
EventSource
nếu không bỏ phiếu đầu vào bàn phím?