多线程读、写DataTable的内容的有关问题
发布时间:2011-06-26 19:49:38 文章来源:www.iduyao.cn 采编人员:星星草
多线程读、写DataTable的内容的问题
程序中有这样一个功能:
自己定义一张表 mytable(DataTable类型的),有线程A 不停地往mytable中添加数据,
同时,有线程B、C、D…… (线程数根据mytable的行数决定,mytable 行数越多,这里的线程越多)不停地修改mytable每一行中某列的内容。
请大家帮个忙,这个功能如何实现?最好能提供点示例代码
附:
mytable (string name,string position,srring tag)
name1,aaa,1
name2,bbb,1
name3,ccc,1
name4,ddd,1
线程A向 mytable中添加数据,name 列已有的则修改其另两列的内容,若 name列没有则新加。
只要 mytable 中有数据,就根据mytable的行数,相应的开几个线程,逐行判断,tag 列是否为1,是则 修改position的内容,同时将tag改为0,则其他线程不必再修改其内容
------解决方案--------------------
帮你顶,如果mytable的数据多的话 那得多少线程啊
------解决方案--------------------
datatable声明时加上volatile关键字,目的是让编译器知道这个实例是会有多个线程访问的。这样就可以保证多个线程安全访问,而且能够保证每个线程得到的数据都是最新的数据。
另外不需要那么多线程的,其实再另外添加一个线程就可以了,另外一个线程实时遍历datatable中的全部行,然后检查相应列数据,再做修改就可以了,我敢说楼主你想创建1000个线程那是不可能的,如果同时创建那么多线程你电脑能受得了吗。
------解决方案--------------------
楼主那么热心啊
偶也帮你顶
------解决方案--------------------
太高难了 容易暴掉
------解决方案--------------------
代码有问题吧, 你的列数, 行数是多少?
如果可以把你的代码(TABLE设计的代码,绑数据的代码, 变更事件的代码贴出来)
------解决方案--------------------
可以用AutoResetEvent 来实现让读取的线程先完成,再将写数据的线程激活运行.
AutoResetEvent dataEvent = new AutoResetEvent(false);
void ReadDataThread()
{
//...读取数据
dataEvent.Set();
}
void WriteDataThread()
{
dataEvent.WaitOne();
// ... 写数据.
}
------解决方案--------------------
学习!
------解决方案--------------------
噢噢
好像蛮复杂的
学习学习
------解决方案--------------------
顶一下
好像没人气蛮
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
wpf中类似redrawWindow函数?
自定义一个控件,此控件需要每0.01s刷新一次,
我试着用DispatcherTimer类来刷新,在刷新时调用Invalidate...
-
(急求高手解决)异常详细信息: System.ArgumentException: 已添加了具有相同键的项。
已添加了具有相同键的项。
说明: 执行当前...
-
请问有没有人知道基于ASP.NET的快速开发平台?
目前市面上基于JAVA技术的开发平台有很多如普元EOS,用友UAP,浪潮楼上,金蝶BOS等等,这些...
-
嵌套repeater,复制问题!!!!
嵌套时是先给外层赋值,在给内层赋值的,我想在内层repeater赋值之后,再根据内层的值给外层的某项赋值,该怎么做...
-
请求“System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”类...
-
C:\Documents and Settings\Administrator\Local Settings拒绝访问
我装的VS2010放到D盘了,可是我在创建项目的时候会报错,所以...
-
求书!
有关C#编译原理的书,介绍几本吧!
------解决方案--------------------
自己下载吧
http://download.csdn.net/download/xinz...
-
fusioncharts lengend 图标说明
fusioncharts 的图标说明,就是那种颜色小方块,官网上点击可以隐藏对应的柱子。。
这个点击图标说明...
-
关于windowsphone和安卓
刚在百度上查了下windowsphone的开发只有20多条而安卓的有3637条记录,然后我又在腾讯新闻上查看10大热门...
-
在wpf中怎样确定窗体的标题栏的高度?
如题.
xaml里的windows标签的height是整个窗体的高度,包括标题栏.而标题栏的高度不知道,对...