私のアプリケーションでは、データの読み取りと書き込みに.NET SerialPortクラスを使用します。読み込みはDataReceivedイベントを使用して行われ、私はThreadPoolスレッドで内部的に仮定します。書き込みはUIスレッド(WinForms)によって行われます。.NET SerialPortの書き込み/読み取りを同期させる必要はありますか?
SerialPortインスタンスへのアクセスを同期させる必要がある場合は、読み書きが同時に起こらないようにするために、私は不思議に思っていました。私の良心は、私はこれらの呼び出しの周りにロックを置く必要があると私に言いますが、私はインターネットで見つけたすべてのC#SerialPortの例はまったくロックを使用しないので困惑しています。
絶対にロックする必要があります。ほとんどの場合、インターネット上で見つかった例はあまり単純化されていません。私は、このようなものが省略された場合に備えて、私が従おうとしているすべての例について、ドキュメントを注意深く読むことをルールにしようとしています。 –