C# Xamarin IOS WebClient在线程中执行

C# Xamarin IOS WebClient在线程中执行,c#,ios,multithreading,xamarin,webclient,C#,Ios,Multithreading,Xamarin,Webclient,从UIViewController将WebClient请求(如UploadAsync或downloadaync)运行到线程中是一个好主意 有时我的请求从未返回,并且从未调用过OnUploadDataCompleted/OnDownloadDataCompleted。我得到了一个覆盖,告诉用户要耐心,但我想让用户取消的可能性,当它变得很长 1/我想知道将请求启动到线程中,当用户按下“取消”按钮时,我终止进程是一个好主意还是一件非常糟糕的事情 2/用户需要了解进程,所以线程将使用InvokeOnMa

UIViewController
将WebClient请求(如
UploadAsync
downloadaync
)运行到线程中是一个好主意

有时我的请求从未返回,并且从未调用过
OnUploadDataCompleted
/
OnDownloadDataCompleted
。我得到了一个覆盖,告诉用户要耐心,但我想让用户取消的可能性,当它变得很长

1/我想知道将请求启动到线程中,当用户按下“取消”按钮时,我终止进程是一个好主意还是一件非常糟糕的事情


2/用户需要了解进程,所以线程将使用
InvokeOnMainThread
更新,这是一个好方法吗?

我认为这不是一个好主意。您可以在WebClient对象上调用CancelAsync()。此外,除非引发异常,否则应始终调用DataCompleted回调。另一种可能是减少超时时间,以便您能够以更及时的方式响应用户。我记得默认的超时时间大约是60秒。

我认为这不是个好主意。您可以在WebClient对象上调用CancelAsync()。此外,除非引发异常,否则应始终调用DataCompleted回调。另一种可能是减少超时时间,以便您能够以更及时的方式响应用户。我记得默认超时时间大约为60秒。

在阅读你的anwser后,你的方法似乎是正确的。在阅读你的anwser后,你的方法似乎是正确的。