/// <summary>
/// Cancels any pending transfer and frees resources.
/// </summary>
protected virtual void Dispose(bool disposing)
{
if (!mbDisposed)
{
mbDisposed = true;
try
{
if (!IsCancelled)
{
Cancel();
}
int dummy;
if (!mHasWaitBeenCalled)
{
Wait(out dummy);
}
if (disposing)
{
// Dispose managed resources.
if (mPinnedHandle != null)
{
mPinnedHandle.Dispose();
}
}
mPinnedHandle = null;
}
catch (Exception ex)
{
Debug.Print(ex.Message);
}
}
}