4

10秒ごとにGPS経由でデータをサーバーに送信する車両がいくつかあり、サーバーはデータをリッスンしてデコードし、データベース(Sqlサーバー)に保存する必要があります。毎分数百のエントリがあります。今のところ、あまり役に立たないシングル スレッド コードがあります。1 つのエントリの処理時間中にドロップされるエントリはほとんどありません。マルチスレッド コードを作成して、1 つのスレッドが処理中にビジー状態になったときに、パケットが次に利用可能なスレッドに移動されるようにしたいと考えています。

私の知る限り、いくつかのフォーラムを調べた後、「利回り」がこの問題の解決に役立つことに気付きました。しかし、利回りをどのように使用できるかについての適切な例が見つかりませんでしたか?

いくつかの例を投稿して、誰かがこれを手伝ってくれますか?

4

1 に答える 1

2

受信時に非同期コールバックを設定し、データをキューにプッシュし、そこから別のスレッドのキューから処理することをお勧めします。そのキューをロックするか、ConcurrentQueue を使用して、スレッドがぶつからないようにしてください。

于 2012-05-31T14:09:52.720 に答える