このコードを実行すると期待どおりに動作しますが、メソッドが戻るとターミナル セッションが不安定になります。
MonoDevelop からは機能しますが (Windows にも同様の問題はありません)、bash の "mono program.exe" から呼び出すと機能しません。プロンプトが再び表示されるまで機能します。プロンプトは正しく見えますが、何もできません。完全にフリーズしています。
Lion で Xamarin Studio 4.0.1 を実行しています。.Net ターゲットは問題ではないようです。
using System;
using System.Text;
using System.IO.Ports;
namespace relay
{
class Program
{
static void Main (string[] args)
{
string[] ports = SerialPort.GetPortNames ();
foreach (string name in ports) {
try {
SerialPort port = new SerialPort (name, 9600, Parity.None, 8, StopBits.One);
port.Open ();
port.Close ();
}
catch (SystemException ex)
{
System.Console.WriteLine(ex.Message);
}
}
}
}
}