2017-02-28 40 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 :) –

回答

相關問題