2011-10-24 32 views
7

Thông thường, các ứng dụng biểu mẫu cửa sổ sẽ tiến hành thực thi khi người dùng cung cấp (các) đầu vào.
ví dụ: Nhấp vào nút.
Cho đến lúc đó ứng dụng bận chờ đợi?
(đi và kiểm tra xem "một nút" đã được "nhấp". Tôi có nghĩa là kiểm tra xem có sự kiện nào đã xảy ra)
hoặc khi một sự kiện xảy ra, hệ điều hành có làm gián đoạn các ứng dụng không?
Cơ chế xử lý sự kiện chính xác cho các ứng dụng biểu mẫu Windows là gì?Các ứng dụng Windows Forms có chờ đợi các đầu vào của người dùng không?

+0

liên kết tốt (mà Google không cung cấp) sẽ tuyệt vời :) – Dinushan

+2

Bạn có thể giả sử không có ứng dụng viết đúng cách nào sử dụng chờ đợi bận rộn. – ThiefMaster

Trả lời

2

Tôi không có nhiều kiến ​​thức về nó để chia sẻ. Nhưng chắc chắn sẽ chia sẻ đậu phộng của tôi.

Chương trình không chờ bất kỳ ai. Nó giống như trong chế độ ngủ. Không tiêu thụ tài nguyên nhưng chỉ để giữ GUI của nó trên màn hình.

Xử lý sự kiện không dựa trên chương trình hoặc hệ điều hành. Phần cứng của nó dựa. Khi bạn nhấp chuột hoặc nhấn một phím trên bàn phím, nó được coi là Hoạt động bên ngoài không đồng bộ. Phần cứng intimates hệ điều hành về hành động được thực hiện bởi người dùng hoặc một thiết bị bên ngoài và thông tin được truyền cho các chương trình tương ứng. Chương trình có thể chấp nhận Khóa hoặc từ chối nó. Nếu nó chấp nhận, khóa được chuyển tới trình xử lý sự kiện và hành động bắt buộc được tạo. Hệ điều hành không hề tham gia vào quá trình này. Của nó nhiều hơn hoặc ít hơn như một trung gian mà chuyển đổi các mã bản địa thành mã chương trình có thể đọc được. Và đó là một trong những lý do các chương trình là hệ điều hành cụ thể. Tôi có nghĩa là những gì nếu hệ điều hành chuyển đổi mã Native trong một định dạng mà chương trình không thể đọc ??

Bạn đang nói về ứng dụng dựa trên Sự kiện trong Windows, hãy tưởng tượng trường hợp USB. Hiện tại có 8 hoặc hơn 8 khe cắm USB trong các bo mạch chủ. Người dùng có thể cắm USB vào bất kỳ vị trí nào. Do hệ điều hành tiếp tục chờ đợi rằng một USB sẽ được chèn vào và trong mỗi khe nó tiếp tục theo dõi và chờ đợi ?? KHÔNG. Không có gì. Một quá trình dựa trên phần cứng của nó và nhiệm vụ của phần cứng cho hệ điều hành thân mật về nó. Các cộng đồng tương thích với Windows và Linux tương thích đi vào hình ảnh ở đây, nơi họ thảo luận về phần cứng nào được hỗ trợ bởi hệ điều hành.

See this to know more.

3

Không, họ không bận chờ đợi: họ chạy Windows Message Pump là một vòng lặp chặn cho đến khi Windows có một tin nhắn để cung cấp cho nó.

Điều này về cơ bản là những gì Application.Run thực hiện.

Các vấn đề liên quan