偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

WPF內(nèi)存之泄露防范方法介紹

開(kāi)發(fā) 開(kāi)發(fā)工具
WPF內(nèi)存在實(shí)際開(kāi)發(fā)中經(jīng)常會(huì)發(fā)生泄漏問(wèn)題。這嚴(yán)重影響了程序的開(kāi)發(fā)效果。解決這一問(wèn)提的方法將在本文中為大家詳細(xì)介紹。

WPF工具固然好用。但是作為一個(gè)出現(xiàn)不久的新工具,當(dāng)然會(huì)存在很多缺陷以及使用中的問(wèn)題等。我們接下來(lái)將會(huì)了解到有關(guān)WPF內(nèi)存中有關(guān)泄露的一些問(wèn)題。#t#

Windows Presentation Foundation即WPF,它代表著Windows平臺(tái)UI的未來(lái)。微軟有其自身的打算,而稍晚于WPF的Silverlight將占領(lǐng)Web和移動(dòng)設(shè)備市場(chǎng)。不過(guò),和任何的新技術(shù)一樣,都會(huì)經(jīng)歷一些問(wèn)題,如某些相當(dāng)嚴(yán)重的內(nèi)存泄漏問(wèn)題。

我們要討論諸多內(nèi)存泄漏。第一個(gè)WPF內(nèi)存問(wèn)題已經(jīng)發(fā)現(xiàn)一段時(shí)間,但它并沒(méi)有引起大多程序員的關(guān)注,甚至是專家們的注意。引發(fā)該問(wèn)題需要以下條件配合:

引用對(duì)象X屬性P的數(shù)據(jù)綁定路徑

對(duì)象X含直接引用或間接引用數(shù)據(jù)綁定操作的目標(biāo)對(duì)象

屬性P通過(guò)PropertyDescriptor對(duì)象而非DependencyProperty對(duì)象或PropertyInfo對(duì)象訪問(wèn)

這個(gè)問(wèn)題在KB 938416中有詳細(xì)的描述。

接下來(lái)是一個(gè)讓人極其厭煩的WPF內(nèi)存Bug,它在我們使用一個(gè)數(shù)據(jù)綁定集合代替另外一個(gè)時(shí)觸發(fā)。Ayende Rahien有引發(fā)該問(wèn)題的源代碼。Mike Brown解釋道:

經(jīng)過(guò)深入研究以后,我發(fā)現(xiàn)該綁定系統(tǒng)并沒(méi)有解除對(duì)“Name”屬性的監(jiān)聽(tīng)程序,但相關(guān)數(shù)據(jù)已被修改。

這很明顯是一個(gè)Bug,它和綁定系統(tǒng)有關(guān)。當(dāng)你注意到數(shù)據(jù)被修改過(guò),而非解除已有綁定(這次假設(shè)Name綁定Textblock)并再次使用該元素,就像重新創(chuàng)建元素集那樣。不幸的是,Textblock從來(lái)沒(méi)有解除該綁定。現(xiàn)在如果讓數(shù)據(jù)變成可觀測(cè)的集合(必要情況下把匿名類型轉(zhuǎn)換為標(biāo)準(zhǔn)的類)并讓該集合觸發(fā)CollectionChanged事件(例如:Data[0]=Data[0]),一切運(yùn)行正常。

以下的內(nèi)存泄漏來(lái)自于jgoldb的微軟博客上:

如果初始HWND在XP上被撤銷就會(huì)導(dǎo)致CMilChannel泄漏

使用綁定的每條線程會(huì)導(dǎo)致ShutdownListener泄漏

在XP的HW中創(chuàng)建和消除WriteableBitmap

SW Viewport 3D w/ VisualBrush和WB等,都會(huì)在XP上引起泄漏問(wèn)題

除了這些WPF內(nèi)存泄漏以外,他還列出了一些其他的常見(jiàn)開(kāi)發(fā)錯(cuò)誤導(dǎo)致的內(nèi)存泄漏,以及一些已修復(fù)的WPF問(wèn)題。

責(zé)任編輯:曹凱 來(lái)源: infoq.com
相關(guān)推薦

2009-12-25 10:05:06

WPF資源

2009-12-24 14:18:57

WPF類型轉(zhuǎn)換

2009-12-23 18:06:25

WPF模板

2009-06-16 11:11:07

Java內(nèi)存管理Java內(nèi)存泄漏

2009-12-28 11:14:29

WPF顯示文本

2010-09-25 11:32:24

Java內(nèi)存泄漏

2010-06-02 13:00:43

Linux 內(nèi)存監(jiān)控

2009-12-28 15:39:33

WPF滑動(dòng)條

2009-12-24 16:11:07

WPF圖像處理

2009-12-23 14:19:07

WPF單向綁定

2009-12-25 17:10:51

WPF動(dòng)態(tài)資源

2009-12-23 14:49:46

WPF面板

2010-09-30 16:38:20

2023-03-10 08:39:54

2012-03-02 14:20:46

JavaJVM

2013-09-03 10:15:02

2009-12-24 14:38:52

WPF全屏幕窗口

2009-12-28 17:48:01

WPF界面布局

2009-12-24 15:22:10

WPF繼承自定義窗口

2009-12-28 13:47:35

WPF對(duì)話框
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)