在ASP.Net页面中使用Parallel.Invoke方法时,如下面的代码访问UI控件属性是否安全?
到目前为止,我没有遇到任何问题,但不确定我是否遗漏了什么。我正在访问下面代码中的2个文本框的text属性--txtAge和txtName。
protected void Page_Load( object sender, EventArgs e)
{
Parallel.Invoke(() =>
{
try
{
SetEmployeeName(txtName.Text);
System.Threading.Thread.Sleep(10000);
}
catch (Exception e1)
{
}
}, // close first Action
() =>
{
try
{
SetEmployeeAge(int.Parse(txtAge.Text), txtName.Text);
System.Threading.Thread.Sleep(10000);
}
catch (Exception e2)
{
}
} // close second Action
);
}
编辑1:
上面的代码似乎可能不是线程安全的,因为根据MSDN doumentation,Textbox控件的Text属性不能保证是线程安全的。
答案 0 :(得分:1)
为什么不将字符串存储在局部变量中,然后在lambda中使用它们,这应该是线程安全的,因为你没有修改它们。