說說Windows巢狀視窗數量限制

巢狀視窗不能太多

在古老的年代,Windows系統並不會限制應用程式的巢狀視窗的數量。如果你真的想要建立200個巢狀視窗,那也是可以的,畢竟這是你自己的決定,我們無權多加干涉。許多應用程式涉及視窗的操作都是巢狀式的,但是有個地方需要注意的是,你需要確保程式的棧足夠大能容納得下這樣多的巢狀視窗,否則會造成棧溢位(stack overflow)。

引入一種限制措施

但是到了Windows NT的時候,視窗管理器從應用程式的Stack中移除(首先是被移動到了單獨的程序,後來被移到了核心空間中)。這個時候,作業系統就需要注意到那些建立了很多巢狀視窗的應用程式了,因為一旦應用程式建立了太多巢狀視窗,就有可能導致棧溢位。

在Windows NT時期,巢狀視窗被限制為100個。到了Windows XP時期,這個限制被進一步降到了50個,因為我們發現在呼叫某些內部函式時,如果巢狀視窗超過75個,則會產生棧溢位,所以限制巢狀視窗為50個,可以釋放更多的Stack空間以避免可能出現的棧溢位。

宣告一下

我並不是這塊功能的實際開發者,我只是從程式碼提交日誌裡看到這個的,如果資訊不準確,也是很有可能的。

最後

Raymond Chen的《The Old New Thing》是我非常喜歡的部落格之一,裡面有很多關於Windows的小知識,對於廣大Windows平臺開發者來說,確實十分有幫助。本文來自:《What is the window nesting limit?》

說說Windows巢狀視窗數量限制

【來源:漫漫開發路】

宣告:轉載此文是出於傳遞更多資訊之目的。若有來源標註錯誤或侵犯了您的合法權益,請作者持權屬證明與本網聯絡,我們將及時更正、刪除,謝謝。 郵箱地址:[email protected]

版權宣告:本文源自 網路, 於,由 楠木軒 整理釋出,共 732 字。

轉載請註明: 說說Windows巢狀視窗數量限制 - 楠木軒