架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 10962|回复: 0

[资料] StringDictionary中SyncRoot的用法

[复制链接]
发表于 2016-11-23 14:26:38 | 显示全部楼层 |阅读模式

C# 面向对象编程,提供了很多用户方便的操作类,现在的这个StringDictionary就是一个专门存储以字符串为键和值的类集合,这个类的意义是:c#的都知道值类型里的string用的是相当广泛,其他的值类型也能转化为相应的字符串类型,这就是这个集合的意义,不过你还是可以使用其他的集合对象来替代它,但是要注意一点,如果是string型存储用这个可以减少内存的损耗,减少程序运行的时间
QQ截图20161123141303.jpg

SyncRoot可用于同步对 StringDictionary 的访问

说白了就是锁的概念,我们来写一段程序测试一下:

代码如下:



我们同时开了两个线程对StringDictionary字典添加数据,

第一个线程和第二个线程的执行时间相差一秒,是为了拉开时间差,防止执行过快,

可以看到线程都走到了两个方法里面,在添加第二条数据的时候,一直在等待第一条数据添加完成,才去添加的第二条数据,添加时间很快。

下面,我们换种写法,便于理解:

QQ截图20161123142234.jpg



开启了3个线程,添加的数据,3个线程几乎同时执行,但是在数据的添加,每条都间隔了10秒时间。。

总结,多线程访问的时候,我们可以通过SyncRoot来保证线程安全




上一篇:WPF Trigger触发器怎么使button进行图片切换
下一篇:c# 使用OCR识别中文图片
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-19 05:34

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表