我有一個WPF應用程序作爲服務運行並呈現2D圖形元素以拍攝jpg快照。所有這些都沒有任何窗口或可見的控制。WPF呈現無圖形卡
該應用程序通常運行在具有非常糟糕的視頻適配器的服務器上:這是否會對應用程序的性能產生負面影響?
有沒有一種方法可以告訴WPF/.NET忽略用於渲染的視頻適配器,以便我可以在同一臺機器上進行一些直接比較測試?
我有一個WPF應用程序作爲服務運行並呈現2D圖形元素以拍攝jpg快照。所有這些都沒有任何窗口或可見的控制。WPF呈現無圖形卡
該應用程序通常運行在具有非常糟糕的視頻適配器的服務器上:這是否會對應用程序的性能產生負面影響?
有沒有一種方法可以告訴WPF/.NET忽略用於渲染的視頻適配器,以便我可以在同一臺機器上進行一些直接比較測試?
我找到了答案。供將來參考:
Session0隔離會阻止服務使用從Windows Vista/2008開始的硬件加速(在WPF中,但在其他任何情況下)。您可以在這裏閱讀更多信息:http://www.microsoft.com/whdc/system/sysinternals/session0changes.mspx
如果您正在運行XP或2003,則服務可以在加載視頻驅動程序的交互式會話中運行:如果選中「允許服務與桌面交互」選項,則會使用硬件加速(假如你的硬件支持它,你可以得到渲染層2),否則你得到渲染層0(僅限於軟件)。
請小心,如果你用遠程桌面連接,並啓動該服務,該服務將使用該會話(不加速),將在渲染層上運行0
(顯然這意味着,在Vista/7/2008和更高版本,你可以運行與蹩腳的視頻適配器的服務沒有任何後果)
這是WPF的Web或WPF的客戶端應用程序? – ChrisBD 2010-08-20 09:42:38
這是一個「完整的」WPF客戶端應用程序,作爲Windows服務運行。 經過進一步調查,我注意到,作爲服務運行時,我總是得到渲染層0.如果應用程序作爲「正常」Windows應用程序(帶有可見窗口)運行,那麼我得到渲染層3. 問題變成略有不同,因爲它似乎是視頻適配器的方式從來沒有用過任何東西。 有沒有辦法使用它? – 2010-08-20 10:24:30