线程问题。 //函数:在窗体中private void Test(){ // m_dtData.row[0][0] = "11111";}//其中m_dtData为窗体成员变量;我要异步执行Test(),请问在这里面操作窗体成员变量dtData合理吗?谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果线程不会冲突就合理。如果是线程间的需要传递和使用的参数则不合理。需要加入互斥锁private static Mutex mutdt = new Mutex(); //数据集锁private void Test(){ //mutdt.WaitOne(); m_dtData.row[0][0] = "11111";mutdt.ReleaseMutex();}这样就可以保证只有一个线程对数据进行更改了 如果是成员变量,就相当于共享资源,多线程访问共享资源,要加互斥...用Mutex..方法://得到互斥权WaitOne();//释放互斥权ReleaseMutex(); 如何使treeview不同的节点显示不同的图标 VS 2010 C#累加并行 现在能和终端连接上,能成功的响应终端的登录请求,但是就是收不到终端发回的GPS数据包,这是为什么 c#怎么开发微博应用 通过C#代码连接3G无线网 选项卡文字问题 服务程序中调用其他窗口程序却只有进程,看不见窗体。 关于读取XML文件的问题,请进 C#中有线程局部存储吗? URL改写问题 winform程序動態指定服務器ip問題? 关于模式窗释放资源的问题,在线等
private void Test()
{
//
mutdt.WaitOne();
m_dtData.row[0][0] = "11111";
mutdt.ReleaseMutex();
}
这样就可以保证只有一个线程对数据进行更改了
WaitOne();//释放互斥权
ReleaseMutex();