Мне никогда не везло с GDI в создании высокоскоростной графики, поэтому я использовал DirectX, но MS отказалась от поддержки Managed DirectX, поэтому вам может потребоваться сделать это в неуправляемом C ++.
Просто напишите свой контроллер на C #, а затем создайте очень тонкий слой управляемого C ++, который просто обращается к неуправляемой C ++ DLL с поддержкой DirectX.
Вам необходимо получить эксклюзивный контроль над компьютером, чтобы никакое другое приложение не могло реально использовать процессор, иначе вы обнаружите, что ваша частота кадров может упасть или, по крайней мере, не быть очень последовательной.
Если вы используете более старую версию DirectX, такую как DirectX 9.0c, которая все еще может поддерживать .NET, и я использовал ее, чтобы получить частоту кадров для музыкальной программы около 70 кадров в секунду.