Безопасно ли использование ссылки на элемент управления в фоновом рабочем потоке? - PullRequest
0 голосов
/ 04 ноября 2011

Допустим, у меня есть словарь элементов управления и строк.Если я запускаю фонового работника, является ли потокобезопасным использование ссылки на элемент управления для доступа к строке, соответствующей элементу управления?

Dictionary<Control, string> _ctlDict;
//Called in the main thread
public void Persist()
{
  foreach (var control in Controls)
  {
    _ctlDict.Add(control, control.Name);
  }
}

//Called in the background worker
public string GetControlName(Control ctl)
{
  return _ctlDict[ctl];
}

Это должно быть в порядке, поскольку я не использую какие-либо свойства элементов управления -Я просто использую ссылку элемента управления, верно?

Ответы [ 2 ]

1 голос
/ 04 ноября 2011

Пока у вас нет доступа к свойствам или методам элемента управления, да, это совершенно безопасно.Это просто ссылка на объект, тот факт, что он указывает на элемент управления, не имеет значения ...

0 голосов
/ 04 ноября 2011

Единственное, в чем вы должны быть уверены, это Persist, и GetControlName нельзя вызывать одновременно.

...