Что такое [DllImport («QCall»)]?

Многие методы в.Net библиотеки реализованы в машинном коде. Те, которые исходят из самого фреймворка, помечены [MethodImpl (MethodImplOptions.InternalCall)] . Те, которые поступают из неуправляемой DLL, помечены [DllImport] (например, [DllImport ("kernel32.dll")] ). Пока ничего необычного.

Но когда я писал ответ на другой вопрос , я обнаружил, что есть много методов, отмеченных [DllImport ("QCall")] . Они кажутся внутренней реализацией .Net (например, GC._Collect () ).

У меня вопрос: что именно означает [DllImport ("QCall")] ? В чем разница между [DllImport ("QCall")] и [MethodImpl (MethodImplOptions.InternalCall)] ?

67
задан Community 23 May 2017 в 12:34
поделиться