日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

讓.Net 應(yīng)用程序突破2G的內(nèi)存訪問限制(4)_.Net教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:解讀.NET 2.0中Hashtable快速查找的方法
一般來說我們都是用 Hashtable 的 ContainsKey 方法來查找 Hashtable 中是否存在某個鍵值然后讀取他,但是這個方法并不是效率最好的方法。比較好的方法是直接讀取鍵值然后判斷這個對象是否



首先先通過VirtualAlloc函數(shù)申請一塊32位虛擬內(nèi)存區(qū)域

然后通過 MapUserPhysicalPages API 函數(shù)將AWE內(nèi)存映射到這個虛擬內(nèi)存地址區(qū)域。

以下為引用的內(nèi)容:

public void Map(bool readOnly)
{
unsafe
{
if (IsMapped)
{
return;
}

if (readOnly)
{
_VirtualAddress = AweApi.VirtualAlloc(null, Capacity, AweApi.MEM_RESERVE | AweApi.MEM_PHYSICAL,
AweApi.PAGE_READONLY);
}
else
{
_VirtualAddress = AweApi.VirtualAlloc(null, Capacity, AweApi.MEM_RESERVE | AweApi.MEM_PHYSICAL,
AweApi.PAGE_READWRITE);
}

if (_VirtualAddress == null)
{
throw new AweStreamException("Cannot reserve memory.", AweStreamException.Reason.CannotReserveMemory);
}

if (!AweApi.MapUserPhysicalPages(_VirtualAddress, _NumberOfPages, _PFNArray))
{
AweApi.VirtualFree(_VirtualAddress, Capacity, AweApi.MEM_RELEASE);
_VirtualAddress = null;
throw new AweStreamException(string.Format("MapUserPhysicalPages failed ({0})", General.GetLastError()),
AweStreamException.Reason.MapUserPhysicalPagesFail);
}

_CanWrite = !readOnly;
}
}

去映射和歸還AWE內(nèi)存的過程是上面兩個過程的逆過程,這里就不再多講,有興趣可以看我的代碼。

下面是實(shí)例代碼下載位置

源代碼地址

分享:解讀26個ASP.Net開發(fā)新手的常見問題
一位ASP.net初學(xué)者學(xué)習(xí)過程中整理的備忘錄,包括“打開新的窗口并傳送參數(shù),為按鈕添加對話框,刪除表格選定記錄,刪除表格記錄警告”等等常見問題的解決方法。 1. 打開新的窗

共4頁上一頁1234下一頁
來源:模板無憂//所屬分類:.Net教程/更新時間:2008-12-05
相關(guān).Net教程