gpt4 book ai didi

c# - 为 WPF 动画制作 C# 库线程安全

转载 作者:行者123 更新时间:2023-11-30 17:44:47 26 4
gpt4 key购买 nike

我正在使用 Artefact Animator图书馆。我发现这个库不是线程安全的。

为什么需要线程安全?我的 WPF 应用程序有 multiple UI threads .

有没有什么好方法可以在不重新编写库代码的情况下使这个线程安全?我已经通过制作库的多个副本并为我开始的每个线程更改库命名空间来破解它提交,但这是一个糟糕的解决方案,因为现在我有多个源代码副本并调整了 using 语句。也许有某种方法可以自动执行此操作或使用反射包装 namespace ?我不知道。

关于为什么我这样做的背景:我有大约 5 到 15k 个 WPF 图像对象,我正在制作动画(在多个监视器上)。当它们都在一个线程上运行时,动画会变得不稳定。如果有人也有更好的方法来做到这一点,我愿意接受解决方案。

最佳答案

WPF 要求所有窗口/控件/依赖对象都具有线程关联性。因此,如果您在一个线程上创建一个 WPF 窗口,那么以后对该窗口的所有更改都必须在同一线程上发生。因此,实际上所有 WPF 应用程序都只有一个用户界面线程。其他线程可能用于后台处理或其他数据处理事件,但反馈随后会发送到用户界面线程以供显示。

我怀疑您的 Artefact Animator 库是基于这种假设编写的,因为大多数 WPF 应用程序都是这样编写的。转换库需要您了解它的设计,然后正确地重新设计它以按需要工作。这可能很简单,也可能几乎不可能,具体取决于图书馆。

关于c# - 为 WPF 动画制作 C# 库线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28997176/

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