世界上有很多方法.Net库是用本机代码实现的.来自框架本身的标记为[MethodImpl(MethodImplOptions.InternalCall)]
.来自某个非托管DLL的标记为[DllImport]
(例如[DllImport("kernel32.dll")]
).到目前为止没有什么不寻常的.
但是在写answer for another question的时候,我发现有很多标有[DllImport("QCall")]
的方法.它们似乎是.Net(例如GC._Collect()
)的内部实现.
我的问题是:[DllImport("QCall")]
到底是什么意思?[DllImport("QCall")]
和[MethodImpl(MethodImplOptions.InternalCall)]
有什么区别?