DataVisualization.Charting.Chart PostPaint事件过早触发

时间:2019-02-23 13:39:00

标签: c# winforms data-visualization

我正在绘制一个复杂的图表,并且System.Windows.Forms.DataVisualization.Charting.Chart的PostPaint事件似乎过早触发。屏幕上还没有图表。

有没有人对带有大型图表的PostPaint事件的行为有更好的了解?有更好的活动要听吗?推荐策略?

我不确定发布代码会带来什么好处。

1 个答案:

答案 0 :(得分:0)

原始帖子: 因此,事实证明(无论如何对我而言)的答案是在事件之外创建另一个线程(我正在使用Task进行此操作)。该线程的工作是不断地将区域与空图像进行比较,当该区域不再为空时,抓取图像并将其保存在数据库中。因为它是线程,所以释放了图表以最终呈现自己。

最终帖子: 最后,我必须在PostPaint事件中放置一个锁(它按TaW指示将触发多次),并确保其中的代码仅执行一次(我有一个Draw按钮,所以这些控件每次都会重置)点击时间)。另外,对于我来说,有必要创建一个任务来实际完成捕获图像并将其存储在数据库中的工作。如果不这样做,每次都会得到一张空白图像。我实际上不必检查点数或对图像进行采样以查看其是否为空白。

锁定事件并在事件内部创建任务是与众不同的原因。