windows共享內存

      網友投稿 1016 2025-04-01

      https://docs.microsoft.com/zh-cn/dotnet/standard/io/memory-mapped-files

      Windows多進程之間通信并沒有維護通用的消息隊列,只有在窗口類進程中維護有窗口消息隊列。即一個窗口進程中可以通過postmessage發送消息,通過DC句柄接收處理消息。 要實現普通多進程之間數據通信,可以使用管道、共享內存、文件讀寫、數據庫讀寫幾種方法,前兩種是Windows提供的機制,后兩種是變通的方法。相對前兩種方法因為是內存處理,效率高。 如果對實時性要求比較高,建議采用前兩種方法;如果處理頻率較低,本身進程中已有數據庫讀寫的處理,也可以采用數據庫讀寫的方式;如果數據簡單,讀寫頻率有低,有不愿專門增加數據庫讀寫的額外處理,也可以通過文件讀寫的方式獲取數據。

      前兩種因為存儲在內存中,數據保密性較高;存儲在數據庫,如果有訪問密碼控制,保密性也能得到保證;存儲在文件,保密性和安全性最低。

      windows共享內存

      這幾種方式都需要額外考慮數據讀寫的同步問題,采用數據庫時由于數據庫本身有讀寫鎖,一般不需要考慮數據的讀寫沖突,只需要考慮數據業務邏輯的前后關系即可;采用文件時一定要注意讀寫沖突,因為文件本身涉及IO操作,相對速度較慢,很容易發生沖突導致業務異常;采用管道和共享內存時也要注意讀寫同步,本身管道和共享內存在操作系統內部也相當于一個特殊的文件在管理。

      共享內存是一種實現多進程之間快速通信的機制。在較高的.net版本,可以直接采用MemoryMappedFile類的CreateOrOpen方法創建或者打開一個內存映射文件,然后再CreateViewAccessor指向訪問視圖,后面就可以對映射到本進程空間的內存進行操作了。當然,這些內是非托管的。

      在早期版本,需要加載Kernel32.dll庫的CreateFileMapping/OpenFileMapping/MapViewOfFile/UnmapViewOfFile函數接口來進行操作,先通過CreateFileMapping創建一個新的或者OpenFileMapping打開一個已經存在的,然后MapViewOfFile映射到本進程內存空間,然后就可以進行內存操作了,最后退出前UnmapViewOfFile取消映射。

      注意著幾個方法的參數:

      int?PAGE_READWRITE?=?0x04;int?FILE_MAP_ALL_ACCESS?=?0xF001F; ? CreateFileMapping(hFile,?IntPtr.Zero,?PAGE_READWRITE,?0,?MAX_MEM_MAP_SIZE,?mapFileName); ? OpenFileMapping(FILE_MAP_ALL_ACCESS,?0,?"Global\\my_mapfile_test"); ? MapViewOfFile(mapFilehandle,?0xf001f,?0,?0,?0); ? 注意:flProtect和dwDesiredAccess兩個參數不同。

      windows

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Excel甘特圖做項目推進計劃
      下一篇:專業的Word報告,圖表目錄怎么自動生成?(word怎樣生成圖表目錄)
      相關文章
      亚洲成人免费在线观看| 亚洲视频在线观看一区| 亚洲乱码无限2021芒果| 亚洲AV第一页国产精品| 亚洲av永久无码精品秋霞电影影院 | 亚洲欧洲日产国码无码久久99 | 久久丫精品国产亚洲av不卡 | 久久精品国产亚洲av品善| 亚洲精品国产第一综合99久久 | 亚洲成av人影院| 亚洲s色大片在线观看| 亚洲国产精品福利片在线观看| 亚洲精品乱码久久久久久自慰| 亚洲综合伊人久久大杳蕉| 亚洲中文字幕在线第六区| 亚洲精品乱码久久久久久| 国产亚洲一区二区手机在线观看| 亚洲精品乱码久久久久久蜜桃不卡| 国产亚洲成AV人片在线观黄桃| 国产偷v国产偷v亚洲高清| 亚洲AV无码专区电影在线观看| 亚洲AV无码专区电影在线观看| 91亚洲国产成人久久精品网站| 久久精品国产精品亚洲毛片| 亚洲黄色免费电影| 亚洲同性男gay网站在线观看| 久久精品国产亚洲AV久| 亚洲日韩国产二区无码| 国产精品久久久久久亚洲影视 | 亚洲成av人片一区二区三区| 亚洲综合色在线观看亚洲| 国产亚洲一区二区三区在线观看| 久久久久亚洲精品无码蜜桃 | 亚洲精品网站在线观看不卡无广告| 区久久AAA片69亚洲| 久久久久久a亚洲欧洲AV| 亚洲美女免费视频| 亚洲永久在线观看| 久久亚洲AV成人无码国产最大| 亚洲中文字幕无码专区| 久久久久久a亚洲欧洲aⅴ|