Why is the Reconnecting variable needed?  Or this check?  If the connection is reconnecting the _connection.State should be equal to ConnectionState.Reconnecting and therefore should never enter this part of the code.