Программы написанные на C# компилируются в
байткод, который потом выполняется
виртуальной машиной. Грубо говоря, эмулятором процессора. К тому же программы на C# используют автоматическое управление памятью, поэтому их выполнение периодически приостанавливается для
сборки мусора.