我的猜測是,類變量(「class var」)在存儲中是真正的全局(即整個應用程序的一個實例)。德爾福班vars有全局或線程本地存儲?
但我想知道是否是這種情況,或者他們是否存儲線程(例如類似於「threadvar」) - 每個線程一次實例。
有人知道嗎?
編輯:改變「範圍」爲「存儲」,因爲這實際上是在正確的術語,我什麼後(感謝巴里)
我的猜測是,類變量(「class var」)在存儲中是真正的全局(即整個應用程序的一個實例)。德爾福班vars有全局或線程本地存儲?
但我想知道是否是這種情況,或者他們是否存儲線程(例如類似於「threadvar」) - 每個線程一次實例。
有人知道嗎?
編輯:改變「範圍」爲「存儲」,因爲這實際上是在正確的術語,我什麼後(感謝巴里)
是,類變量是全局範圍。查看RTL源代碼以獲取threadvars如何實現的詳細信息。在Win32下,每個線程都可以在創建線程時自動分配一塊內存。這個額外的數據區域是用來包含你的threadvars的。
類變量的範圍根據其成員可見性屬性,並且具有全局存儲,而不是線程存儲。
範圍是一個語法概念,並且涉及哪些標識符從哪裏可見。這是這裏所關心的變量的存儲。
類變量就像類:全局和應用程序的唯一。
我毫不懷疑你是正確的。想知道系統應該如何工作,但這是一個需要權威性「是/否」答案的問題,我想知道在接受答案之前我應該考慮多少票是「權威性」的。怎麼辦,怎麼辦.....? – Graza 2008-09-17 11:42:57
Daniel的答案是正確的,我投了票。我不知道是否可以通過將類var引用到線程var來使用一些小技巧?還沒有嘗試過 - 也不會去嘗試:) – 2008-09-17 11:48:07