public void UpdateCommStatus() { lock (handle_sync_) { if (!WinAPI.ClearCommError(handle_, out error_stat_, out comstat_temp_)) { error_stat_ = 0; comstat_temp_.Flags = 0; comstat_temp_.cbInQue = 0; comstat_temp_.cbOutQue = 0; } if ((error_stat_ != 0) || (comstat_.Flags != comstat_temp_.Flags) ) { CommStatusUpdated?.Invoke( this, new CommStatusUpdatedEventArgs( (ErrorStatus)error_stat_, (CommStatus)comstat_temp_.Flags, (CommStatus)comstat_.Flags)); } comstat_.Flags = comstat_temp_.Flags; comstat_.cbInQue = comstat_temp_.cbInQue; comstat_.cbOutQue = comstat_temp_.cbOutQue; } }