通常,當用戶給出輸入時,窗體窗體應用程序會繼續執行。例如:
例如:點擊一個按鈕。
在此之前應用程序是否忙碌等待?
(去檢查「按鈕」是否被「點擊」。我的意思是檢查是否有任何事件發生)
或者當事件發生時操作系統是否中斷應用程序?
什麼是Windows窗體應用程序的確切事件處理機制?Windows Forms應用程序是否忙於等待用戶輸入?
7
A
回答
2
我對分享知之甚少。但一定會分享我的花生。
程序不會等待任何一個。它就像睡眠模式一樣。消耗資源,但只是保持其屏幕上的圖形用戶界面。
事件處理不是基於程序或基於操作系統的。其基於硬件。當您單擊鼠標或按下鍵盤上的某個鍵時,其被認爲是異步外部活動。硬件向操作系統提供有關用戶或外部設備採取的操作的信息,並將信息傳遞給相應的程序。本程序可以接受密鑰或拒絕密鑰。如果它接受,則將該鍵傳遞給事件處理程序,並生成所需的操作。操作系統並沒有參與這個過程。它或多或少像一個將本機代碼轉換爲程序可讀代碼的中介器。這就是程序特定於操作系統的原因之一。我的意思是如果操作系統將程序無法讀取的格式轉換爲本地代碼?
您正在討論基於Windows的應用程序中的事件,可以設想一下USB的情況。目前主板上有8個或8個以上的USB插槽。用戶可以將USB插入任何插槽。操作系統是否繼續等待一個USB插入,並在每個插槽中保持跟蹤和等待?沒有。一點也不。它是一個基於硬件的過程,也是硬件爲操作系統提供硬件的責任。 Windows Compatible和Linux Compatible社區在這裏描述了他們在哪裏討論哪種硬件是哪個操作系統支持的地方。
3
不,他們不會忙着等待:他們運行一個Windows消息泵,這個消息循環會阻塞,直到Windows有消息提供給它。
這基本上是Application.Run所做的。
相關問題
- 1. android - 等待用戶輸入
- 2. GTK:等待用戶輸入
- 3. WPF等待用戶輸入
- 4. jquery - 等待用戶輸入
- 5. JavaFX等待用戶輸入
- 6. 中斷等待用戶輸入的線程,然後退出應用程序
- 7. 在C中忙於等待#
- 8. Java scan.nextLine()僅等待用戶輸入int用戶輸入;不等待字符串用戶輸入
- 9. 等待C中的用戶輸入?
- 10. 用戶輸入的等待設置時間C#控制檯應用程序
- 11. 繁忙的等待線程
- 12. 程序不會等待以詢問用戶輸入
- 13. C程序不會等待用戶輸入值
- 14. 如何使程序在for循環內等待用戶輸入?
- 15. 等待用戶輸入達到特定秒數的C程序
- 16. 我的程序是否在等待輸入?
- 17. 如何檢測進程/線程何時等待用戶輸入
- 18. fgets不等待用戶輸入
- 19. 如何讓java等待用戶輸入?
- 20. Ruby「gets」不會等待用戶輸入
- 21. Tera Term - 等待用戶輸入
- 22. 如何讓GUI等待用戶輸入?
- 23. 使pytest等待用戶輸入
- 24. Swift WatchOS等待用戶輸入
- 25. 等待超時的用戶輸入
- 26. Java FX等待用戶輸入
- 27. Java Textfield getText()不等待用戶輸入
- 28. MessageDialog - 需要等待用戶輸入
- 29. 如何添加/等待用戶輸入?
- 30. scanf()不在等待用戶輸入
良好的鏈接(谷歌不給)將是偉大的:) – Dinushan
你可以假設沒有正確書面的應用程序使用繁忙的等待。 – ThiefMaster