VSC#Outlook通过POST发送文件,在上传完成之前Outlook不会收到任何响应

VSC#Outlook通过POST发送文件,在上传完成之前Outlook不会收到任何响应,post,outlook,progress-bar,vsto,Post,Outlook,Progress Bar,Vsto,我的VSTO加载项正在从Outlook向API发送文件和数据。我的问题是,当我上传大约10 MB的示例文件时,Outlook会获得状态无响应,直到上传完成 当添加ProgressBar时,becouse也是outlook冻结的一部分 我的问题是,有没有人面对同样的问题并解决了它?或者可以在添加WPF进度条的Outlook加载项中添加VSTO 谢谢你的提示 @Dmitry Streblechenko的更新 电子邮件附件存储在本地,并通过RestClient发送: var client2 = new

我的VSTO加载项正在从Outlook向API发送文件和数据。我的问题是,当我上传大约10 MB的示例文件时,Outlook会获得状态
无响应
,直到上传完成

当添加ProgressBar时,becouse也是outlook冻结的一部分

我的问题是,有没有人面对同样的问题并解决了它?或者可以在添加
WPF
进度条的Outlook加载项中添加VSTO

谢谢你的提示

@Dmitry Streblechenko的更新

电子邮件附件存储在本地,并通过RestClient发送:

var client2 = new RestClient("https://my.web.com/api/upload");
client2.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddParameter("id", RiD);
request.AddFile("file_path", @"C:\attachment\attachment.zip");
IRestResponse response = client2.Execute(request);
Console.WriteLine(response.Content);
如何在次线程中发送它

谢谢

此解决方案帮助我:

var thread = new Thread(() =>
 {
     Thread.Sleep(3000);
     var client2 = new RestClient("https://my.web.com/api/upload");
     client2.Timeout = 5000;
     var request = new RestRequest(Method.POST);
     request.AddParameter("id", RiD);
     request.AddFile("file_path", @"C:\attachment\attachment.zip");
     IRestResponse response = client2.Execute(request);
     Console.WriteLine(response.Content);
  });

  thread.Start();
  thread.IsBackground = true;
注:
Thread.Sleep(3000)是否有becouse主线程-压缩电子邮件中的所有附件,所以我需要缓慢的第二次威胁来等待压缩


谢谢@Dmitry Streblechenko

为什么不在单独的线程中上传数据?您无法在辅助线程中访问OOM对象,但可以在主线程本地保存数据,然后在辅助线程上将其上载到服务器。@Dmitry Streblechenko cna请查看我的更新?我不确定您在问什么。您是在问如何使用Thread对象吗?或者,如何使用任务对象异步运行代码?@Dmitry Streblechenko在您的第一个回答“本地存储文件并将其上载到辅助线程上的服务器”,但如何实现?第二个线程意味着仅为outlook handlo uploud文件创建另一个加载项?首先,不要调用Sleep(),而是实际等待操作完成,然后启动线程。另外,不要硬编码附件路径