void _reader_OnReadingFinish(StreamReaderAsync sender, StreamReaderAsync.ReadingFinishedEventArgs e)
 {
     updateConnectButton();
 }
 /// <summary>
 /// Opens the serialport that was specified in the combobox and starts an internal
 /// thread that reads from it. You can subscribe the event 'OnByteReceived' to
 /// be notificated about received data.
 /// </summary>
 private void open()
 {
     port.PortName = cbPortName.Text;
     port.Open();
     _reader = new StreamReaderAsync(port.BaseStream);
     _reader.OnBytesReceive += new GenericEventHandler<StreamReaderAsync, StreamReaderAsync.BytesReceiveEventArgs>(_reader_OnBytesReceive);
     _reader.OnReadingFinish += new GenericEventHandler<StreamReaderAsync, StreamReaderAsync.ReadingFinishedEventArgs>(_reader_OnReadingFinish);
     _reader.start();
 }
 void _reader_OnBytesReceive(StreamReaderAsync sender, StreamReaderAsync.BytesReceiveEventArgs e)
 {
     EventHelper.invoke<StreamReaderAsync, StreamReaderAsync.BytesReceiveEventArgs>(OnBytesReceive, sender, e);
 }
 void close()
 {
     port.Close();
     _reader.OnBytesReceive -= _reader_OnBytesReceive;
     _reader.OnReadingFinish -= _reader_OnReadingFinish;
     _reader = null;
 }