上記のケーブルを安全に抜く為には、SerialPortオブジェクトをdispose()すれば、問題ないのでしょうか?
「安全に」の意味がよく分かりませんが・・・
Microsoft の Reference Source の class SerialPort に記載されているコード(抜粋下記)によれば、SerialPort クラスの Dispose() もしくは Close() を呼ぶというのは、内部 Stream をFlush / Close してから null に設定し、その結果 IsOpen プロパティは false になるということだそうです。
// true only if the Open() method successfully called on this SerialPort object, without Close() being called more recently.
[Browsable(false)]
public bool IsOpen
{
get { return (internalSerialStream != null && internalSerialStream.IsOpen); }
}
// Calls internal Serial Stream's Close() method on the internal Serial Stream.
public void Close()
{
Dispose();
}
protected override void Dispose( bool disposing )
{
if( disposing ) {
if (IsOpen) {
internalSerialStream.Flush();
internalSerialStream.Close();
internalSerialStream = null;
}
}
base.Dispose( disposing );
}
Microsoft のドキュメント SerialPort.Close Method には以下の記述があります(日本語版もありますが翻訳がアレなので英語版)
"Closes the port connection, sets the IsOpen property to false, and disposes of the internal Stream object."
ということで、質問者さんの言う安全かどうかは分かりませんのでそれはちょっと置いといて、Dispose() もしくは Close() 後は通信は終わっているので、ケーブルを抜いても通信には影響なさそうとは言えると思います。