私は、あるソースから受け取ったパケットの数を数えるTaskを得ました。別のスレッドによって常にインクリメントされるintを使用してリセットする
タイマが250msごとに起動し、カウントが読み込まれ、ユーザにカウントが出力されます。直後にカウントを0に戻す必要があります。
私の懸念は、カウントの読み取りと表示の間にありますが、カウントを0に設定する前に、カウントが他のスレッドで増分されています。それをゼロにする。
私は複数のオプションになっているので、私はスレッドに新しいです。
私はInterlockedを使用してみましたが、算術演算のみを行うことが分かっている限り、実際に変数を値に設定するオプションはありません。
私はReaderWriterLockSlimも探していましたが、私が必要とするのは、多くのデータが存在するため、最も効率的/少ないオーバーヘッドの方法です。
使用Interlocked.Exchangeは、現在の値を取得し、同時に0にリセットし、Interlocked.Increaseはそれを増やすことにします。 –
@ LasseV.Karlsen Interlocked.Increment * – john
申し訳ありませんが、私のiPad上では、メモリから入力するだけです。残念ながら、インテリセンスはありません:) –