2017-02-28 54 views
0

我得到一个Task来统计它从某个源接收到的数据包的数量。使用并重置一个不断增加的int值,其他线程

每250ms一个定时器启动读取并输出计数给用户。在我需要将计数设置为0之后。

我的问题是,在读取和显示计数之间,但是在我设置count = 0之后,count在另一个线程中增加了,所以我最终失去了计数将它归零。

我是新来的线程,所以我一直在多个选项。

我看着使用互锁,但据我所知它只给我算术运算,我没有选择实际设置变量值。

我还在研究ReaderWriterLockSlim,我需要的是最高效/较少的开销方式来完成,因为有大量数据传入。

+0

使用Interlocked.Exchange抓住当前值,并在同一时间将其重置为0,Interlocked.Increase予以增加。 –

+0

@ LasseV.Karlsen Interlocked.Increment * – john

+1

是的,对不起,在我的iPad上只能记忆打字。不幸的是没有intellisense :) –

回答

相关问题