Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 总结silverlight多线程访问规则_C#_Multithreading_Silverlight - Fatal编程技术网

C# 总结silverlight多线程访问规则

C# 总结silverlight多线程访问规则,c#,multithreading,silverlight,C#,Multithreading,Silverlight,有没有人能给我一套简明的(通用的)规则,说明哪些数据/方法可以从辅助(非UI)线程访问,哪些数据/方法不能从辅助(非UI)线程访问?我想说,这是UIThread创建的任何DependencyObject 我建议使用这种扩展方法,当你不确定 public static class Extensions { public static void FastInvoke(this Dispatcher dispatcher, Action action) { if (di

有没有人能给我一套简明的(通用的)规则,说明哪些数据/方法可以从辅助(非UI)线程访问,哪些数据/方法不能从辅助(非UI)线程访问?

我想说,这是UIThread创建的任何DependencyObject

我建议使用这种扩展方法,当你不确定

public static class Extensions
{
    public static void FastInvoke(this Dispatcher dispatcher, Action action)
    {
        if (dispatcher.CheckAccess())
            action.Invoke();
        else
            dispatcher.BeginInvoke(action);
    }
}
像这样使用它:

Dispatcher.FastInvoke(delegate
                {
                    StatusMessageText.Text = "OK";
                });

我想说的是,它是由UIThread创建的任何DependencyObject

我建议使用这种扩展方法,当你不确定

public static class Extensions
{
    public static void FastInvoke(this Dispatcher dispatcher, Action action)
    {
        if (dispatcher.CheckAccess())
            action.Invoke();
        else
            dispatcher.BeginInvoke(action);
    }
}
像这样使用它:

Dispatcher.FastInvoke(delegate
                {
                    StatusMessageText.Text = "OK";
                });

谢谢-这是一个好的开始。我还可以看出,如果UI元素绑定到INotifyPropertyChanged派生对象的属性,那么在后台线程中修改该属性的值也将失败。因此,如果被非UI线程访问,任何绑定到UI元素的UI元素或属性都会导致错误。还有其他规定吗?谢谢-这是个好的开始。我还可以看出,如果UI元素绑定到INotifyPropertyChanged派生对象的属性,那么在后台线程中修改该属性的值也将失败。因此,如果被非UI线程访问,任何绑定到UI元素的UI元素或属性都会导致错误。还有其他规定吗?