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