如何在.net中对MemoryMappedFiles使用x64 Interlocked Operations

Jan*_*Jan 7 .net c# multithreading interlocked memory-mapped-files

我需要对MemoryMappedFile.NET 中的内存使用Interlocked Operations(CompareExchange,Increment等).

我找到了一个非常相似的问题的答案.问题是Interlocked Operations不是从64位操作系统上的kernel32(或任何其他)dll导出的(参见例如http://blog.kalmbachnet.de/?postid=46).

有没有其他方法可以在64位.NET进程中调用内存块上的互锁函数?

usr*_*usr 1

为自己编写一个小型 C++/CLI 帮助程序库,该库提供可由托管代码使用的互锁操作。

我相信最快的互操作路径是公开一个托管类,该类在内部调用一个非托管函数,该函数本身在互锁的内在函数上使用。这样您甚至不必通过 PInvoke。