public void Close() { IsClosing = true; if (PointSchedulerTask != null) { Primitives.Interrupt(PointSchedulerTask); PointSchedulerTask = null; } ResetCache(); ResetSeries(); ChartPlotModel = null; ChartPlotter = null; BottomAxis = null; LeftAngularAxis = null; LeftSignalAxis = null; ChartCache = null; }
public RecorderChart(RecorderControl recorder) { Recorder = recorder; ChartPlotter = null; IsClosing = false; IsYZoom = false; NumPointsPerPlot = POINTS_PER_PLOT; CurrentRelativeChartCacheIndex = 0; CurrentChartImageFileName = null; ChartCache = new DataCache(recorder.ShellId, false, true, true, 0); BottomAxis = new RecorderTimeLineAxis(this); LeftAngularAxis = new RecorderLeftAngularAxis(this); LeftSignalAxis = new RecorderLeftSignalAxis(this); AxisPointTaskQueue = new LinkedBlockingCollection <RecorderAxisPoint>(); PointSchedulerTask = new Thread(new ThreadStart(AxisPointScheduler)); PointSchedulerTask.Name = "AxisPointSchedulerThread:" + recorder.ShellId; PointSchedulerTask.Priority = ThreadPriority.Normal; PointSchedulerTask.Start(); }