private void shutdown(string uploadId)
{
// To get the AbortMultipartUpload the best chance of actually being able to
// abort the upload look through the list of threads multiple times
// to make sure they have been successfully aborted.
bool anyAlive = true;
for (int i = 0; anyAlive && i < 5; i++)
{
anyAlive = false;
foreach (Thread thread in this._executedThreads)
{
try
{
if (thread.IsAlive)
{
thread.Abort();
anyAlive = true;
}
}
catch { }
}
}
try
{
this._s3Client.AbortMultipartUpload(new AbortMultipartUploadRequest()
{
BucketName = this._fileTransporterRequest.BucketName,
Key = this._fileTransporterRequest.Key,
UploadId = uploadId
});
}
catch (Exception e)
{
_logger.InfoFormat("Error attempting to about multipart for key {0}: {1}", this._fileTransporterRequest.Key, e.Message);
}
}