我正在使用ThreadPool.QueueUserWorkItem
执行通过POST
执行HTTP
请求的异步任务。
ThreadPool.QueueUserWorkItem(new WaitCallback(UploadPhoto), photoFileName);
目前我想添加从UI取消上传的可能性。
我有两个问题:
ThreadPool
适合我的目标吗?答案 0 :(得分:2)
考虑使用Task.Factory.StartNew在WP7上执行异步工作。您可以使用CancellationTokens强制取消。这就是我的异步工作方式。要实现中断,您可以执行以下操作(使用任务):
var task = Task.Factory.StartNew( ( )=>
{
// some operation that will be cancelled
return "some value";
})
.ContinueWith( result =>
{
if(result.Status == TaskStatus.Cancelled) // you have other options here too
{
// handle the cancel
}
else
{
string val = result.Result; // will be "some value";
}
});
ContinueWith子句链接在第一个任务的主体完成后(以某种方式)完成的另一个方法。 ContinueWith方法的参数'result'是ContinueWith链接到的Task,并且在任务'result'上有一个名为Result的属性,它是前一个任务提供的任何返回值。