Многие методы в.Net библиотеки реализованы в машинном коде. Те, которые исходят из самого фреймворка, помечены [MethodImpl (MethodImplOptions.InternalCall)]
. Те, которые поступают из неуправляемой DLL, помечены [DllImport]
(например, [DllImport ("kernel32.dll")]
). Пока ничего необычного.
Но когда я писал ответ на другой вопрос , я обнаружил, что есть много методов, отмеченных [DllImport ("QCall")]
. Они кажутся внутренней реализацией .Net (например, GC._Collect ()
).
У меня вопрос: что именно означает [DllImport ("QCall")]
? В чем разница между [DllImport ("QCall")]
и [MethodImpl (MethodImplOptions.InternalCall)]
?