protected void GeneratePreviewProcess() { try { status = Status.Generating; loadProgress = 0; Thread.Sleep(500); if (updateBonds || updateAtoms) { sceneManger.UpdateAtoms(latestCoDesc, atoms); loadProgress = 50; OnPaint(null); } else { sceneManger.OnNewDataSource(atoms, bonds, new Vector3(0, 0, 0.5f), new Bounds3D(new Vector3(), new Vector3(), 4)); loadProgress = 50; OnPaint(null); } loadProgress = 100; status = Status.Rendering; OnPaint(null); } catch (ThreadAbortException tae) { // clean up status = Status.NoData; //scheme.Clear(); } }