首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何中断WindowsPhone ThreadPool.QueueUserWorkItem

如何中断WindowsPhone ThreadPool.QueueUserWorkItem
EN

Stack Overflow用户
提问于 2013-10-03 18:10:49
回答 1查看 148关注 0票数 0

我使用ThreadPool.QueueUserWorkItem来执行通过HTTP执行POST请求的异步任务。

代码语言:javascript
复制
ThreadPool.QueueUserWorkItem(new WaitCallback(UploadPhoto), photoFileName);

现在,我想添加取消从UI上传的可能性。

我有两个问题:

  • 如何实现线程中断?
  • ThreadPool适合我的目标吗?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-03 18:14:38

考虑使用Task.Factory.StartNew在WP7上进行异步工作。您可以使用CancellationTokens强制取消。我就是这样做异步工作的。要实现中断,可以执行以下操作(使用任务):

代码语言:javascript
复制
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方法的参数“ContinueWith”是ContinueWith链接到的任务,任务“结果”上有一个名为结果的属性,即前面任务提供的任何返回值。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19166184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档