public void Flush(AsyncContinuation asyncContinuation)
{
if (asyncContinuation == null)
{
throw new ArgumentNullException("asyncContinuation");
}
lock (this.SyncRoot)
{
if (!this.IsInitialized)
{
asyncContinuation(null);
return;
}
asyncContinuation = AsyncHelpers.PreventMultipleCalls(asyncContinuation);
try
{
this.FlushAsync(asyncContinuation);
}
catch (Exception exception)
{
if (exception.MustBeRethrown())
{
throw;
}
asyncContinuation(exception);
}
}
}