private void StartConfiguring()
{
int status = Interlocked.CompareExchange(ref _operating, Configuring, Free);
if (status == InProgress || status == Configuring)
{
throw new InvalidOperationException(SR.net_socketopinprogress);
}
else if (status == Disposed)
{
throw new ObjectDisposedException(GetType().FullName);
}
}