gpt4 book ai didi

c# - Silverlight - 是否可以在后台线程上创建 UI 元素?

转载 作者:太空宇宙 更新时间:2023-11-03 22:09:37 26 4
gpt4 key购买 nike

我正在使用 PolyLineSegment 和点在 Silverlight 中构建折线图控件。它按预期工作,但是当需要可视化的数据太多(太多点)时,应用程序会卡住很长时间。出于一个明显的原因,我无法将我的代码移动到单独的线程上 - 它直接处理 UI 元素,因此当我尝试从单独的线程调用它们时,它会导致异常(即使 UI 元素尚未呈现)。

有什么方法可以在后台线程上动态创建UI元素,然后将它们传递给UI线程进行渲染吗?如果没有,可能的解决方案是什么?我正在考虑创建位图图像而不是实际控件,但在这种情况下不会有太多交互。

最佳答案

听起来您需要一种更快的方式来渲染您的点。如果您有 800k 个样本,并且只说 800 个像素来显示它们,那么如果您只是将其加载到 PolyLineSegment 中,您将浪费每个像素 1000 个点的计算。

我会重新审视“插值”这些点(这实际上是对您的大型数据集的合并)。您要确保正确捕获每个像素中函数的动态范围:

  • 算出图形应该有多少像素宽
  • 确定在 X 方向上每个像素有多少个点
  • 对于每个点 block :
    • 构建点的直方图
    • 在图表上的这些点将映射到的 X 处从最大值到最小值画一条垂直线。这会捕获 block 中表示的完整范围。

如果您的点/像素接近 1,您将需要切换到简单渲染以提供更好的视觉效果。

关于c# - Silverlight - 是否可以在后台线程上创建 UI 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7115913/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com