C# 一个线程在对list进行add操作,另一个线程要对这个list中的数据进行处理,处理之后要删除,该如何实现?
现在在做一个抓包程序,将抓到的包在WinForm中的chart控件中统计画图。
抓包是通过Raw Socket异步实现,由于数据量较大,每抓到一个数据包就画图会导致界面假死
现在我的处理方式是建立两个list,将其中一个list 的地址传给抓包线程,抓到包后,add到list中,然后新开一个Timer.Thread,计时结束后,将另一个list的地址传给抓包线程,然后将之前缓存的list输出到界面画图然后清空
但是这样还是会出现两个线程访问同一个list的错误,请问有什么方式可是解决吗?
本人编程小白,感觉我的方式出现问题是因为画图操作时间太长,两个缓存太少?请大神指点!