private void DrawFrame() { try { Bobber.PerformFrame(); Bobber2.PerformFrame(); //panImage.Update(); Graphics g = ImageBackBufferCanvas; lock (g) { g.Clear(Color.Transparent); g.ResetTransform(); //g.DrawImage(panImage.BackgroundImage, 0, 0, panImage.ClientSize.Width, panImage.ClientSize.Height); Bobber.Draw(g, 346, 157); g.ResetTransform(); Bobber2.Draw(g, 45, 157); List <Particle> removeparts = new List <Particle>(); foreach (Particle drawpart in DrawParticles) { if (drawpart.PerformFrame(null)) { removeparts.Add(drawpart); } } lock (DrawParticles) { foreach (Particle removeit in removeparts) { DrawParticles.Remove(removeit); } } //BobberVersion.Draw(g, (int)g.MeasureString(BobberVersion.DrawString,BobberVersion.DrawFont).Width, 157); panImage.Invoke((MethodInvoker)(() => { panImage.Invalidate(); panImage.Update(); })); //panImage.Update(); } } catch (Exception ex) { Debug.Print("Unexpected Exception (DrawFrame)" + ex.Message); } }