public void Open() { if (!Connected) { ApplySettings(); try { SerialPort.Open(); //RefreshSettings(); currentTab.onConnectSuccessful(); PageSetting pageSetting = currentTab.ConnectionType.AdvanceSettingsPage as PageSetting; pageSetting.UsePort(currentTab); cancellationTokenSource = new CancellationTokenSource(); readTask = new Task(Read); readTask.Start(); } catch (UnauthorizedAccessException e) { ConnectOnError(e, "請檢查其他程式是否占用Port"); } catch (ArgumentOutOfRangeException e) { ConnectOnError(e, "參數錯誤,請檢查連線參數"); } catch (System.IO.IOException e) { ConnectOnError(e, "無效的連線參數或連接埠處於無效狀態"); } } }