protected override void ProcessNextRequest() { IXboxTransferRequest item; var request = _finishedRequests.TryTake(out item, TimeSpan.FromMilliseconds(500)); if (item == null) { return; } if (!request) { return; } _totalBytesUploaded += item.Length; long totalBytesForGame = _totalBytesAlreadyUploaded + _totalBytesToUpload; int percentComplete = (int)(((float)(_totalBytesAlreadyUploaded + _totalBytesUploaded) / (float)totalBytesForGame) * 100); _notifier.FinishedFileUpload(_gameName, item, percentComplete); }