私は C# でよくある問題を抱えています。データをスレッドセーフにする方法は知っていますが、どの方法が私のケースに最適かはわかりません。
私のアプリケーションはシリアル ポートからデータを受信し (サンプルごとに 10 フロート、100 サンプル/秒)、そのデータを何らかの方法で保存したいと考えています (質問もあります。たとえば、最後の 2000 サンプルを保持するのに最適なアイデアは何でしょうか?構造体のキュー? ) 別のスレッドからそのコレクションにアクセスしてグラフを描画し、受信したデータに対してリアルタイムで計算を実行する別のスレッドも使用したいと考えています。
単純なロックを使用する必要がありますか? それとも同時コレクションですか?または他の?;)