2011-11-04 30 views
0

假设我有一个控件和字符串的字典。如果我运行后台工作器,使用控件引用访问与控件相对应的字符串是否线程安全?在后台工作线程安全中使用对控件的引用吗?

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]; 
} 

这应该是好的,因为我没有使用任何控件的属性 - 我只是使用控件的引用,对吧?

回答

1

只要你不访问控件的属性或方法,是的,它是完全安全的。它只是一个对象引用,它指向一个控件无关紧要...

+0

我这么认为,谢谢你的回答! –

0

唯一需要确定的是Persist和GetControlName不能同时调用。

+0

嗯,我甚至在开始背景工作之前就打电话给我。 –

相关问题