2011-02-02 78 views
3

我試圖找到System.Threading.CompressedStack的實際用途。一些很酷的東西,不是「哦,我們可以將堆棧從一個線程移動到另一個線程,以獲得樂趣」,而是當人們真的想要這樣做時,或者其他任何你可以用這個有趣的小班做的事情。什麼是System.Threading.CompressedStack的使用情況

+0

不是堆棧,安全上下文。以便在將方法調用編組到另一個線程時可以使用它並進行驗證。沒有什麼是你自己做的。 – 2011-02-02 00:53:37

回答

3

這實際上是爲框架內​​部使用而設計的。從documentation

CompressedStack類由SecurityContext類內部使用。例如,SecurityContext.Capture方法捕獲當前調用堆棧的壓縮堆棧以及模擬和文化信息。 SecurityContext類由ExecutionContext類依次用於在線程之間傳遞上下文,例如在調度線程池任務時。

該類不用於普通的應用程序編程。

+0

鏈接再次運行。所以,問題是......爲什麼微軟不把它標記爲內部?我的意思是,將它公之於衆是有原因的。除了上述內容之外,您還有什麼想法可以使用它?只是好奇。 – 2011-02-03 11:07:47

4
直接從

documentation

「這個類是不能在普通的應用程序使用。」

我想這隻適用於非凡的應用程序編程。

1

這是創建插件和沙箱時非常有用的類。可以捕獲主機的CAS上下文(CompressedStack.Capture),然後在插件調用可信主機方法(CompressedStack.Run)時允許在主機執行上下文中「恢復執行」。

否則「可信任」主機方法將作爲不可信代碼執行,並且在嘗試訪問CAS受保護資源時會遇到多個SecurityExceptions。

相關問題