我很好奇一些低级.NET类是如何实现的.我以Monitor类为例.但是,我似乎无法在GitHub上找到它.我得到的最接近的是Monitor.cs在coreclr.但是,此文件中的代码仅引用了大量实用的extern方法[MethodImplAttribute(MethodImplOptions.InternalCall)].
这是我被卡住的地方.我在哪里可以找到这些内部方法的实现?
这些在CLR 中实现为FCall.
以下是Monitor相关内部调用的列表:
FCFuncStart(gMonitorFuncs)
FCFuncElement("Enter", JIT_MonEnter)
FCFuncElement("ReliableEnter", JIT_MonReliableEnter)
FCFuncElement("ReliableEnterTimeout", JIT_MonTryEnter)
FCFuncElement("Exit", JIT_MonExit)
FCFuncElement("ObjWait", ObjectNative::WaitTimeout)
FCFuncElement("ObjPulse", ObjectNative::Pulse)
FCFuncElement("ObjPulseAll", ObjectNative::PulseAll)
FCFuncElement("IsEnteredNative", ObjectNative::IsLockHeld)
FCFuncEnd()
Run Code Online (Sandbox Code Playgroud)
所以,如果你想查找的定义Enter为实例方法,你就必须找JIT_MonEnter(在这种情况下,它是一个JIT帮手这里)
| 归档时间: |
|
| 查看次数: |
306 次 |
| 最近记录: |