在winform或者WPF中创建的线程不能直接更新其他控件的属性值,否则会抛出异常,正确的方式可以参考如下代码:
private delegate void SetControlPropertyDelegate(
Control control,
string propertyName,
object propertyValue);
public static void SetControlProperty(
Control control,
string propertyName,
object propertyValue)
{
if (control.InvokeRequired)
{
control.Invoke(new SetControlPropertyDelegate
(SetControlProperty),
new object[] { control, propertyName, propertyValue });
}
}