У меня нет конкретной проблемы c, но я из любопытства спрашиваю.
Как CLR отслеживает состояние выполнения программы?
CLR имеет свой собственный «l oop» и всегда l oop через байт-код и решает, когда JIT метод или когда вызывать метод jited?
Если так, то как? Допустим, у вас есть следующие методы
public void Foo()
{
int a = 0;
bar(a);
}
public void bar(int a)
{
Console.WriteLine(a);
}
Предположим, что ни один из методов еще не связан.
Затем вызывается метод foo()
, присоединяется к машинному коду и выполняется.
Машинный код теперь вызывает bar()
.
Как CLR узнает, что bar()
еще не был подключен и его необходимо подключить, если он вызывается на уровне машинного кода?