问个多线程操作DataTable时遇到的百思不得其解的问题 多线程 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 而且这个问题最麻烦的一点就是:没法调试我在自己电脑上怎么跑,它就是不窜放到生产环境里去,通过VPN远程观察,经过一段时间之后就窜了虽然从Unity3D里看不出收到的数据错乱,但是datagridview里显示错乱,实际的datatable应该还是错乱了 更新"OPC值"这一列,只有一个地方,就是读OPC的回调函数里而更新"OPC旧值"也只有一个地方,就是客户端请求最新的数据时,比较"OPC值"和"OPC旧值"如果有不同,把数据发送到客户端,同时用"OPC值"更新"OPC旧值"其他列,是只读不写的,而且不存在多线程向同一行同一列里写入的情况 读取OPC是开了一个线程,一直死循环+sleep去请求数据,然后通过回调函数取值而TCP是异步侦听,虽然没有显式的使用线程,应该也是另起线程操作的加上主线程,一共3个线程 可能会有问题吧,比如说 DataTable 按行标记是否已经被修改过,每一行有一个状态写操作必须同步,这个还是要遵守的 要加锁,刚才我举那个例子就是,如果操作同一行的不同列,他们都影响了这一行的状态(同一个值)谢谢,这样我就清楚了不能把datatable当二维数组我还是老老实实每个地方都加锁就好了 连接wcf服务错误 怎么看.Net类库中类中成员方法的具体代码? 请问,我想做个像编程设计器那样的东东,可以创建控件,创建后还可以移动该控件,该怎么做呢? winform可以异步showdialog吗? 发送邮件的奇怪问题,请教大家 数据库问题,这样的SQL语句如何写? c#下执行带多个参数的控制台命令问题求教 wfp存取本机数据 如何实现这样的弹出窗口? 如何将图片文件存入数据库? access数据库连接字符串问题! 求助:如何下载网络文件到本地?
我在自己电脑上怎么跑,它就是不窜
放到生产环境里去,通过VPN远程观察,经过一段时间之后就窜了
虽然从Unity3D里看不出收到的数据错乱,但是datagridview里显示错乱,实际的datatable应该还是错乱了
而更新"OPC旧值"也只有一个地方,就是客户端请求最新的数据时,比较"OPC值"和"OPC旧值"如果有不同,把数据发送到客户端,同时用"OPC值"更新"OPC旧值"
其他列,是只读不写的,而且不存在多线程向同一行同一列里写入的情况
而TCP是异步侦听,虽然没有显式的使用线程,应该也是另起线程操作的
加上主线程,一共3个线程
写操作必须同步,这个还是要遵守的
谢谢,这样我就清楚了
不能把datatable当二维数组
我还是老老实实每个地方都加锁就好了