Я хочу воспроизвести видео в openGL, используя openTK. Работает нормально. но при закрытии этой конкретной формы он выдает исключение «System.ObjectDisposedException:« Не удается получить доступ к удаленному объекту. »« под кодом «while (glControl1.IsIdle)». Как я могу решить это?
Мое приложение содержит «Form1». Когда пользователь нажимает на кнопку, «Form2» откроется в новом окне. Эта Form2 будет воспроизводить видео в openGL.
private void Form2_Load(object sender, EventArgs e)
{//openGL code
StartCameras();
glControl1.Resize += new EventHandler(glControl1_Resize);
glControl1.Paint += new PaintEventHandler(glControl1_Paint);
Application.Idle += Application_Idle;
// Ensure that the viewport and projection matrix are set correctly.
glControl1_Resize(glControl1, EventArgs.Empty);
}
private void Application_Idle(object sender, EventArgs e)
{
while (glControl1.IsIdle)
{
Render();
}
}
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
StopCameras();
}
private void StopCameras()
{
timer.Stop();
videoSourcePlayer1.SignalToStop();
videoSourcePlayer1.WaitForStop();
}