protected override void Main()
{
GpuImpl.InitSynchronizedOnce();
GpuProcessor.ProcessInit();
Console.WriteLine("GpuComponentThread.Start()");
try
{
while (true)
{
WaitHandle.WaitAny(new WaitHandle[] { GpuProcessor.DisplayListQueueUpdated, ThreadTaskQueue.EnqueuedEvent, RunningUpdatedEvent }, 200);
// TODO: Should wait until the Form has created its context.
ThreadTaskQueue.HandleEnqueued();
if (!Running) break;
GpuProcessor.SetCurrent();
GpuProcessor.ProcessStep();
GpuProcessor.UnsetCurrent();
}
}
finally
{
Console.WriteLine("GpuComponentThread.End()");
}
}