首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从UI线程运行线程,而不阻塞UI线程

从UI线程运行线程,而不阻塞UI线程
EN

Stack Overflow用户
提问于 2014-08-07 09:34:30
回答 2查看 316关注 0票数 1

我的视图模型中有一个布尔属性,它绑定到我视图中的属性。当该属性更改为true时,我希望在不阻塞UI线程的情况下进行服务调用,这样我的视图就可以继续工作。到目前为止,我已经:

代码语言:javascript
运行
复制
    private bool _isLoadingAnimationVisible = true;
    public bool IsLoadingAnimationVisible
    {
        get { return _isLoadingAnimationVisible; }
        set
        {
            _isLoadingAnimationVisible = value;
            if (IsLoadingAnimationVisible)
            {
                Task t = new Task(() => { LoadStuff(SelectedSomething.Id, SelectedDate, false); });
                t.Start();
            }
            RaisePropertyChanged("IsLoadingAnimationVisible");
        }
    }

我不认为LoadStuff方法很重要,但是这个任务t目前正在阻塞我的UI线程。我想知道是否有一种在保持UI线程自由的同时执行线程t的方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-07 09:36:51

你能做到的

代码语言:javascript
运行
复制
if (IsLoadingAnimationVisible)
{
    new Thread(delegate() {
                           LoadStuff(SelectedSomething.Id, SelectedDate, false);
                          }).Start();
}

确保您没有从LoadStuff更新UI。

票数 0
EN

Stack Overflow用户

发布于 2014-08-07 09:38:24

尝试:

代码语言:javascript
运行
复制
await Task.Factory.StartNew<bool>(()=>{get the bool})

您需要等待一个任务才能成为异步任务。这个工厂是一种干净的方法。

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

https://stackoverflow.com/questions/25179037

复制
相关文章

相似问题

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