1
보조 (비 UI) 스레드에서 액세스 할 수있는 데이터/메소드에 대한 간결한 (일반은 괜찮습니다) 규칙 세트를 제공 할 수있는 사람이 친절합니까?silverlight multithreading access rules 요약
보조 (비 UI) 스레드에서 액세스 할 수있는 데이터/메소드에 대한 간결한 (일반은 괜찮습니다) 규칙 세트를 제공 할 수있는 사람이 친절합니까?silverlight multithreading access rules 요약
저는 그것이 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가 아닌 스레드가 액세스 할 경우 오류가 발생합니다. 다른 규칙이 있습니까? – skj