2017-01-10 2 views
3

いくつかの低レベルの.NETクラスがどのように実装されているのか不思議です。 Monitorクラスを例として取り上げました。しかし、私はGitHubでそれを見つけるように見えることはできません。私が一番近かったのはMonitor.csで、coreclrでした。ただし、このファイルのコードは、[MethodImplAttribute(MethodImplOptions.InternalCall)]の実質的なものについてはexternのメソッドを参照しています。.NETのMonitorクラスのソースコードはどこにありますか?

これは私が立ち往生したところです。これらの内部メソッドの実装はどこで見つけることができますか?

答えて

4

これらは、CLRにFCallsとして実装されています。

HereMonitor関連の内部コールのリスト:だから

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() 

あなたはインスタンスのEnterメソッドの定義を探したい場合は、あなたがJIT_MonEnterを探す必要があるでしょう(これでJITヘルパーの場合here

関連する問題