public void BeginResume()
{
// Only paused client can be resumed.
if (this.Status != DownloadStatus.Paused)
{
throw new ApplicationException("Only paused client can be resumed.");
}
this.Status = DownloadStatus.Waiting;
ThreadPool.QueueUserWorkItem(DownloadInternal);
}