如何在任务运行前后按钮单击更新UI

时间:2018-01-18 20:05:34

标签: c# asp.net multithreading webforms task

我有一个Web窗体应用程序,我需要在单击按钮时显示进度微调器,并在任务完成执行时隐藏它。我尝试了很多不同的方法来做到这一点。我只能使隐藏或显示功能正常工作,但不能同时工作。对于下面的代码,直到页面重新加载后才显示微调器(我通过删除隐藏微调器部分来测试它)。所以基本上,隐藏部分发生并按预期工作,但显示部分没有。

作为旁注,该页面在此方法的持续时间内处于重新加载状态。谢谢你的帮助!

    protected async void btnPullQBData_Click(object sender, EventArgs e)
    {
        loadingContainer.Visible = true;
        string type = "";
        string response = "";

        response = await SyncData();
        loadingContainer.Visible = false;
    }

    public Task<string> SyncData()
    {
        return Task.Run(() =>
        {
            QBService service = new QBService(User.Identity.GetUserId());
            string response = service.RefreshDBFromQB();
            return response;
        });
    }

0 个答案:

没有答案