From 6b873f9cc452fc89718dc0a700ade9c855df0f92 Mon Sep 17 00:00:00 2001 From: Jared Date: Mon, 21 Sep 2020 15:25:17 -0700 Subject: [PATCH] Upload file on UIThread so progress events reach controls. --- .../ViewModels/FileTransferWindowViewModel.cs | 14 +++++++++----- .../ViewModels/FileTransferWindowViewModel.cs | 13 ++++++++----- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/Desktop.Linux/ViewModels/FileTransferWindowViewModel.cs b/Desktop.Linux/ViewModels/FileTransferWindowViewModel.cs index e5408355..15062457 100644 --- a/Desktop.Linux/ViewModels/FileTransferWindowViewModel.cs +++ b/Desktop.Linux/ViewModels/FileTransferWindowViewModel.cs @@ -1,4 +1,5 @@ using Avalonia.Controls; +using Avalonia.Threading; using ReactiveUI; using Remotely.Desktop.Core.Interfaces; using Remotely.Desktop.Core.Services; @@ -80,12 +81,15 @@ namespace Remotely.Desktop.Linux.ViewModels public async Task UploadFile(string filePath) { - var fileUpload = new FileUpload() + await Dispatcher.UIThread.InvokeAsync(async () => { - FilePath = filePath - }; - FileUploads.Add(fileUpload); - await _fileTransferService.UploadFile(fileUpload, _viewer); + var fileUpload = new FileUpload() + { + FilePath = filePath + }; + FileUploads.Add(fileUpload); + await _fileTransferService.UploadFile(fileUpload, _viewer); + }); } public ICommand RemoveFileUpload => new Executor((param) => diff --git a/Desktop.Win/ViewModels/FileTransferWindowViewModel.cs b/Desktop.Win/ViewModels/FileTransferWindowViewModel.cs index 80f8d5c1..4cd9106c 100644 --- a/Desktop.Win/ViewModels/FileTransferWindowViewModel.cs +++ b/Desktop.Win/ViewModels/FileTransferWindowViewModel.cs @@ -94,12 +94,15 @@ namespace Remotely.Desktop.Win.ViewModels public async Task UploadFile(string filePath) { - var fileUpload = new FileUpload() + await App.Current.Dispatcher.InvokeAsync(async () => { - FilePath = filePath - }; - FileUploads.Add(fileUpload); - await _fileTransferService.UploadFile(fileUpload, _viewer); + var fileUpload = new FileUpload() + { + FilePath = filePath + }; + FileUploads.Add(fileUpload); + await _fileTransferService.UploadFile(fileUpload, _viewer); + }); } public ICommand RemoveFileUpload => new Executor((param) =>