Нить не может получить доступ к объекту.

 
0
 
.NET
ava
hexzo | 02.07.2011, 16:17
Ошибка:
The calling thread cannot access this object because a different thread owns it.

Вылетает на:

public SolidColorBrush statusbrush;
public SolidColorBrush statusbrush_prop
{
get
{
return statusbrush;
}
set
{
statusbrush.Color = Color.FromArgb(255, 24, 255, 255); //вот тут вот оно и вылетает
//statusbrush = value;
// OnPropertyChanged("statusbrush_prop");
}
}


Я не понял, кто это владеет этим объектом? smile
Возможно средствами студии узнать что происходит в моей программе? То есть каким образом объект оказался в разных нитях? smile
Ответы (1)
ava
hexzo | 02.07.2011, 17:05 #
Попробовал сделать вот так. Но код внутри делегата не выполняется. smile

Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Normal, (System.Threading.ThreadStart)delegate()
{
statusbrush.Color = Color.FromArgb(255, 24, 255, 255);
OnPropertyChanged("statusbrush_prop");
});


Добавлено позднее:
Нужно делать так!! smile

statusbrush.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (System.Threading.ThreadStart)delegate()
{
statusbrush.Color = Color.FromArgb(255, 24, 255, 255);
OnPropertyChanged("statusbrush_prop");
});
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
  hexzo
advanced
Отправить