public void loop() { CommonInfo.mainFormHaveShown.WaitOne(); while (true) { if (CommonInfo.isResolutionChanged) { CommonInfo.ChangeResolution(); } //更新scene mf.UpdatePrimitives(); if (commandPool.Excute() > 0) { CudaUtil.GenerateScene(); } //更新面板 mf.RefreshTransormPanel(); //渲染图片 renderBuffer.signal.WaitOne(); // 若当前bitmap为不可渲状态则等待,反之进行下一步 CudaUtil.RenderScene(renderBuffer.index, 3); // 这里应该是 renderScene() renderBuffer.signal.Reset(); //渲染完成后,当前bitmap变为不可渲 renderBuffer.theOther.signal.Set(); //渲染完成后,当前bitmap变为 可被前端显示(简称可显) 状态 renderBuffer = renderBuffer.next; // 切换到下一个bitmap } }