Я сделал приложение с API, которое позволило мне создать свой собственный цикл событий. Я пытаюсь добиться того же эффекта с помощью форм .NET для преобразования этого приложения. В основном это выглядело так:
int main()
{
InitializeComponents();
While(!quitting()){
updateComponents();
renderComponents();
}
terminateComponents();
return 0;
}
Можно ли получить доступ к основному циклу формы?
Или есть событие, которое срабатывает каждый кадр? При этом я могу, например, рассчитать количество кадров в секунду. Это событие не должно вызываться формой, но, возможно, даже системой, так что вы даже можете использовать их со службами, приложениями и для Интернета.
Спасибо
Когда в вашей программе ничего не происходит, это ничего не делает, поэтому в простом приложении нет реальных кадров.
И вот почему есть Application.Idle
событие. Это происходит каждый раз, когда приложение заканчивает делать то, что должно.
Что-то вроде того:
//somewhere in the initialization function:
Application.Idle += OnIdle;
void OnIdle(object sender, EventArgs e)
{
updateComponents();
renderComponents();
}
ПРИМЕЧАНИЕ: в соответствии с документация Вы должны отсоединить его когда-нибудь в будущем:
//finalization function
Application.Idle -= OnIdle;
Других решений пока нет …