.Net库中的许多方法都是用本机代码实现的。那些来自框架本身的标记为[MethodImpl(MethodImplOptions.InternalCall)]。来自非托管DLL的那些标记有[DllImport](例如[DllImport("kernel32.dll")])。到目前为止,没有任何异常。
但是在写另一个问题的答案时,我发现有很多用标记的方法[DllImport("QCall")]。它们似乎是.Net的内部实现(例如GC._Collect())。
我的问题是:究竟是什么[DllImport("QCall")]意思?[DllImport("QCall")]和之间有什么区别[MethodImpl(MethodImplOptions.InternalCall)]?