//函数:
在窗体中
private void Test()
{
  //
   m_dtData.row[0][0] = "11111";
}//其中m_dtData为窗体成员变量;我要异步执行Test(),请问在这里面操作窗体成员变量dtData合理吗?
谢谢。

解决方案 »

  1.   

    如果线程不会冲突就合理。如果是线程间的需要传递和使用的参数则不合理。需要加入互斥锁private static Mutex mutdt = new Mutex();             //数据集锁
    private void Test()
    {
      //
    mutdt.WaitOne();
       m_dtData.row[0][0] = "11111";
    mutdt.ReleaseMutex();
    }
    这样就可以保证只有一个线程对数据进行更改了
      

  2.   

    如果是成员变量,就相当于共享资源,多线程访问共享资源,要加互斥...用Mutex..方法://得到互斥权
    WaitOne();//释放互斥权
    ReleaseMutex();