Vista SP1 Visual Studio 2008 SP1 .NET 3.5 SP1 C#
SerialPort オブジェクトをプライベート変数として使用する、私が遊んでいる winforms アプリがあります。アプリケーションをコンパイルして実行すると、うまく機能します。また、ブレークポイントなしでデバッグ モードで実行しても機能します。ブレークポイントで停止してコードをステップ実行しようとすると、90% の確率で、次の詳細を含む「未処理の例外が発生しました」というダイアログが表示されます。
System.ObjectDisposedException は未処理でした Message="Safe ハンドルが閉じられました" Source="mscorlib" ObjectName="" StackTrace: at Microsoft.Win32.Win32Native.SetEvent(SafeWaitHandle handle) at System.Threading.EventWaitHandle.Set() at System. InnerException:
イライラするのは、シリアル関連のコードをまたぐ必要がないことです! 私はポートで何かをしなければなりませんでした。つまり、文字列を読み取り、文字列を操作し、2 つの数値を足し合わせてから、BANG を実行します。
繰り返しますが、これは、デバッグしない場合、またはブレークポイントなしでデバッグする場合に問題なく機能します。CLRが別のスレッドでSerialStreamを破棄するブレークポイントで停止することについて何かがあるようです。
これを引き起こす USB デバイスの改修に関する問題について、オンラインで多くのおしゃべりがあります。しかし、私は COM1 の内蔵マザーボード ポートを使用しています。
私は.NET 2.0でこの問題があったとは思わないので、それに戻らなければならないかもしれません...
コードを投稿する前に、アプリケーションをかなり単純化する必要がありますが、デバッガーでこのような動作を見たことがありますか?
本当にありがとう!