我目前正致力于深层强化学习实施。为了了解培训的进展情况,我创建了如下所示的UI。每次在while循环结束时都会更新文本框和两个图表。这个循环在一个线程内运行,该线程模拟老虎机并训练神经网络。性能分析器指示主线程(运行UI)消耗了87%的CPU使用量,其余部分留给了模拟线程。
有没有人知道一种很好的方法可以大幅降低用户界面的成本?
private delegate void AppendChartCallback(Chart chart, double x, double y);
private void AppendChart(Chart chart, double x, double y)
{
if (chart.InvokeRequired)
{
AppendChartCallback d = new AppendChartCallback(AppendChart);
Invoke(d, new object[] { chart, x, y });
}
else
{
chart.Series[0].Points.AddXY(x, y);
if (chart.Series[0].Points.Count % 20 == 0)
{
chart.Refresh();
}
}
}
编辑:我暂停了图表'一旦添加了更多数据(基于模数),立即更新并单独调用。
答案 0 :(得分:0)
我不会绘制单个(x,y)点,可以绑定到一个值数组。这里有一个例子How To Create A Line Chart From Array Of Values?
答案 1 :(得分:0)
将积分添加到列表中。
让计时器每隔16.66毫秒使视图无效。