private void ProceedImage(object sender, string pathToImage) { if (!_cancellationTokenSource.IsCancellationRequested) { using (var originalImage = new Bitmap(pathToImage)) { var rgba = ImageUtils.GetRgbaFromBitmap(originalImage); SRCNNHandler srcnn = new SRCNNHandler() { Scale = 2, ScaleModel = Model }; int width = originalImage.Width; int height = originalImage.Height; var taskId = Guid.NewGuid(); ProgressLogging(new ProgressMessage(taskId, UpscallingStatuses.Received)); Task upscallingTask = Task.Run( async() => { await srcnn.UpscaleImageAsync(taskId, rgba, width, height, ResultHandling, ProgressLogging); }, _cancellationTokenSource.Token); if (_imageLoadingParallel) { _imagePrecessingTasks.RemoveAll(t => t.IsCompleted); _imagePrecessingTasks.Add(upscallingTask); } else { upscallingTask.Wait(); } } File.Delete(pathToImage); } }
private Task ProceedImage(SendImage message) { return(Task.Run(() => { if (!_cancellationTokenSource.IsCancellationRequested) { using (var ms = new MemoryStream(message.Image)) { using (var originalImage = new Bitmap(ms)) { var rgba = ImageUtils.GetRgbaFromBitmap(originalImage); SRCNNHandler srcnn = new SRCNNHandler() { Scale = 2, ScaleModel = Model }; int width = originalImage.Width; int height = originalImage.Height; ProgressLogging(new ProgressMessage(message.TaskId, UpscallingStatuses.Received)); Task upscallingTask = Task.Run( async() => { await srcnn.UpscaleImageAsync(message.TaskId, rgba, width, height, ResultHandling, ProgressLogging); }, _cancellationTokenSource.Token); _imagePrecessingTasks.RemoveAll(t => t.IsCompleted); _imagePrecessingTasks.Add(upscallingTask); } } } })); }