- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在研究并发性,并从更“线程安全”的角度看待事物。 WPF(或者实际上是 System.Windows.Freezable 等)有一个 freezable 类,它可以提供“冰棒不变性”。有没有人尝试过在 WPF/Silverlight 之外使用它,使用它会更好,还是自己动手/使用别人的更好?我知道那里有一些不错的。
最佳答案
您不应在 WPF 外部的 System.Windows 中使用 Freezable 类型。
这样做的原因是您创建了对 WindowBase.dll(或定义了 Freezable 的位置)的依赖项。在没有直接访问 UI 的情况下,这样的引用不应该存在于“模型项目”中。
但是,您可以轻松编写自己的 Freezable 基类代码。
我在一个应用程序中使用了以下接口(interface),我想在其中创建需要复杂启动的线程安全对象(它是循环引用):
public interface IFreezable
{
bool CanFreeze
{
get;
}
bool IsFrozen
{
get;
}
void Freeze();
}
请注意 CanFreeze 属性:我决定使用它是因为我想在卡住之前验证 Freezables - 我认为不给客户这样做的机会并不好。
Freezables 的概念在我看来是一个不错的想法,它丰富了多线程应用程序中的工具面板。
关于c# - 在 WPF 之外使用 Freezable 类的任何 "Gotchas"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1954665/
文档说 克隆-“创建 System.Windows.Freezable 的可修改克隆,进行深度复制对象的值。复制对象的依赖属性时,此方法复制表达式(可能不再解析)但不复制动画或它们的当前值。” 克隆当
这个问题在这里已经有了答案: How to freeze freezable objects that cannot be frozen (1 个回答) 关闭 1 年前。 我正在为我的 WPF 应用
我试过 MSDN,但没有从 Freezable 派生的例子。 更新: 是的,在 MSDN 中有一个带有动画的示例,但它太复杂了。 需要更简单的东西来理解freezable。 最佳答案 文档 在 MSD
WPF - 我正在使用 BackgroundWorker 创建一个 Model3D 对象,但是当我想将它添加到 XAML 中定义的 Model3DGroup 时,出现异常: Cannot use a
我正在使用 MVVM 模式编写一个应用程序。我通过将 View 的 DataContext 属性设置为 ViewModel 的实例来向 View 提供数据。一般来说,我只是从那里使用 Binding
我有一个工作 custom markup extension它以特定方式从 DataContext 中检索信息(对于这个问题不重要)。 一切都很好,直到我在不属于可视树或逻辑树的元素中使用此标记扩展。
我有一个 wpf 表单,我想在用户从控件中做出选择时立即显示加载弹出窗口,因为数据加载可能需要很长时间才能看到,因为数据库不是本地的。在我为弹出窗口创建线程之前,我已经完成了所有工作。 这是我创建线程
我有一个类库项目,我在其中为我的 WPF 应用程序和 RIA 服务保留了一些接口(interface)和类。 进入我要添加成员的类(class)之一 Brush BackgroundColor { s
WPF/Silvellight 中的“可卡住”子类型是什么? 最佳答案 可卡住对象是一种具有允许您“卡住”它的机制的对象。这会锁定所有状态并使对象不可变。这使得对象的使用性能更高,并且在线程之间共享更
这两者有什么区别?它们在语义上不是等价的吗? 最佳答案 没有。 Freezable.IsFrozen 可以通过调用 Freeze() 方法从类外部切换(一次),DependencyObject.IsS
我在开发 WPF 应用程序时遇到了一个问题。该应用程序基于 Prism。应用程序使用 prism bootstraper 和在加载任何窗口之前,应用程序会在不同的线程 (STA) 上打开一个模式对话框
我一直在研究并发性,并从更“线程安全”的角度看待事物。 WPF(或者实际上是 System.Windows.Freezable 等)有一个 freezable 类,它可以提供“冰棒不变性”。有没有人尝
我在 Brushes.xaml 中有这个: 并在 Generic.xaml 中像这样使用它: 问题是 wpf 卡住了画笔,所以
我正在做一个使用 Leaflet map 服务的 Angular 项目。我遇到了集群问题。我想切换集群并为此找到了一个包,其中包含启用/禁用集群功能的方法:Leaflet.MarkerCluster.
我对此感到非常困惑,它开始让我质疑我对 WPF 资源系统的整体理解 我有一个多窗口应用程序,其中每个 Window 派生对象都在具有单独调度程序的单独线程上运行。 Thread t = new Thr
我是一名优秀的程序员,十分优秀!