.NET에서 MemoryMappedFile
s의 메모리에 대해 연동 연산 (CompareExchange, Increment 등)을 사용해야합니다..NET에서 MemoryMappedFiles에 대해 x64 연동 연산을 사용하는 방법
매우 비슷한 질문으로이 answer을 발견했습니다. 문제는 Interlocked Operations가 64 비트 OS에서 kernel32 (또는 기타) dll에서 내 보내지 않은 것입니다 (예 : http://blog.kalmbachnet.de/?postid=46 참조).
64 비트 .NET 프로세스에서 메모리 블록에 인터록 된 함수를 호출하는 다른 방법이 있습니까?
나는 인터럽트 된 함수를 호출하는 내포 된 함수로 내 자신의 C Dll을 작성하려고 시도 할 것이고 .NET에서 호출 할 것이다. –
@AlexFarber Excelent point! 나는 이것에 대해 묻기 만했다 :) 컴파일러 본질적인 연동 함수 (예 : [http://msdn.microsoft.com/en-us/library/2ddez55b = vs.80) .aspx] (http://msdn.microsoft.com/en-us/library/2ddez55b(v=80) .aspx))? 따라서 ASM 코드를 스스로 재발견 할 필요가 없습니다. – Jan
이 작업을 수행 할 필요가 없습니다. 네이티브 DLL에서 필수 기능을 호출하면 컴파일러가 나머지 작업을 수행합니다. 내 말은, 당신이 필요로하는 각각의 연동 함수에 대해 연동 함수를 호출하는 내 보낸 Dll 함수를 작성한다는 것입니다. –