2017-02-28 3 views
0

私は、あるソースから受け取ったパケットの数を数えるTaskを得ました。別のスレッドによって常にインクリメントされるintを使用してリセットする

タイマが250msごとに起動し、カウントが読み込まれ、ユーザにカウントが出力されます。直後にカウントを0に戻す必要があります。

私の懸念は、カウントの読み取りと表示の間にありますが、カウントを0に設定する前に、カウントが他のスレッドで増分されています。それをゼロにする。

私は複数のオプションになっているので、私はスレッドに新しいです。

私はInterlockedを使用してみましたが、算術演算のみを行うことが分かっている限り、実際に変数を値に設定するオプションはありません。

私はReaderWriterLockSlimも探していましたが、私が必要とするのは、多くのデータが存在するため、最も効率的/少ないオーバーヘッドの方法です。

+0

使用Interlocked.Exchangeは、現在の値を取得し、同時に0にリセットし、Interlocked.Increaseはそれを増やすことにします。 –

+0

@ LasseV.Karlsen Interlocked.Increment * – john

+1

申し訳ありませんが、私のiPad上では、メモリから入力するだけです。残念ながら、インテリセンスはありません:) –

答えて

関連する問題