如果在线程中操作创建一个SolidColorBrush对象,系统会抛出System.UnauthorizedAccessException异常,提示Invalid cross-thread access,可以使用Dispatcher类的BeginInvoke方法解决 。 原代码:
S.Color = new SolidColorBrush(Colors.Red);
//在非UI线程中执行会抛异常
改成:
Dispatcher.BeginInvoke(() => S.Color = new SolidColorBrush(Colors.Red));