在Parallel.Invoke中访问ASP.NET控件属性

时间:2014-04-12 06:49:50

标签: c# asp.net task-parallel-library

在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属性不能保证是线程安全的。

1 个答案:

答案 0 :(得分:1)

为什么不将字符串存储在局部变量中,然后在lambda中使用它们,这应该是线程安全的,因为你没有修改它们。