一、C#在线程中安全使用队列和字典
在C#中,系统提供了ConcurrentQueue(线程安全队列)和ConcurrentDictionary(线程安全字典)
我们在线程中,最好把List和Dictionary换成线程安全的这两种方式,要不然程序运行时会崩溃
ConcurrentQueue有Enqueue()方法和TryDequeue()方法,分别为向列表中添加和取出数据
ConcurrentDictionary有TryAdd()和TryRemove()方法,分别为添加和取出数据
具体方法如图(1)所示,这样就不会出现程序崩溃的问题了。
二、C#在线程中调用控件方法-使用委托
例如我们需要在线程中需要改变界面上label的内容,具体方法如图(2)所示。
三、循环遍历列表或字典的同时移除中的某一项。
在Foreach循环中删除列表中的某一项会报错,“集合已修改,可能无法执行枚举操作”,如下图(3)所示:
下面改为在For循环中操作就不会报错啦,如下图(4)所示: