From 76ebe53d89a1b0cbf21d66dc9f26dc95cc7b3be9 Mon Sep 17 00:00:00 2001 From: Roy Ben Shabat Date: Mon, 13 Apr 2020 03:41:41 +0300 Subject: FSE TUP --- .../FSE/Tango.FSE.Common/FileSystem/FileSystemHandler.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'Software/Visual_Studio/FSE/Tango.FSE.Common/FileSystem/FileSystemHandler.cs') diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/FileSystem/FileSystemHandler.cs b/Software/Visual_Studio/FSE/Tango.FSE.Common/FileSystem/FileSystemHandler.cs index e74395ade..9cceb4fa3 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Common/FileSystem/FileSystemHandler.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/FileSystem/FileSystemHandler.cs @@ -14,6 +14,7 @@ namespace Tango.FSE.Common.FileSystem private FileSystemHandlerStatus _statusBeforePause; private System.Timers.Timer _transferRateTimer; private double _lastPosition; + private TaskCompletionSource _completionSource; public event EventHandler StatusChanged; @@ -93,6 +94,7 @@ namespace Tango.FSE.Common.FileSystem public FileSystemHandler(FileSystemHandlerType type, FileSystemItem fileSystemItem, String destination, Action abortAction) { + _completionSource = new TaskCompletionSource(); Type = type; FileSystemItem = fileSystemItem; Destination = destination; @@ -133,16 +135,19 @@ namespace Tango.FSE.Common.FileSystem { Status = FileSystemHandlerStatus.Failed; FailedException = exception; + _completionSource.SetException(exception); } internal void RaiseAborted() { Status = FileSystemHandlerStatus.Aborted; + _completionSource.SetException(new OperationCanceledException("File system operation aborted.")); } internal void RaiseCompleted() { Status = FileSystemHandlerStatus.Completed; + _completionSource.SetResult(Status); } public void Abort() @@ -150,5 +155,10 @@ namespace Tango.FSE.Common.FileSystem Status = FileSystemHandlerStatus.Aborted; _abortAction?.Invoke(); } + + public Task WaitForCompletion() + { + return _completionSource.Task; + } } } -- cgit v1.3.1