首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >特殊过程中的锁定控制

特殊过程中的锁定控制
EN

Stack Overflow用户
提问于 2015-01-17 15:03:16
回答 1查看 29关注 0票数 1

我编写了一个函数,可以从网络下载类似于图片的内容,并在一个特殊按钮的点击事件中使用它。我的问题是,当我点击按钮,应用程序开始从互联网下载图片,我的所有控件的形式,锁定(直到下载过程完成!)不仅仅是控制,我所有的形式也是如此。因此,如何在应用程序的背景下处理这个过程,用户可以同时与其他控件一起工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-17 15:22:26

您需要的只是异步编程。

下面是一个非常简单的演示

代码语言:javascript
代码运行次数:0
运行
复制
private async void button1_Click(object sender, EventArgs e)
{
    this.Text = "doing something...";
    var result = await SomeHeavyWork();
    this.Text = result.ToString();
}

private async Task<int> SomeHeavyWork()
{
    using (var hc = new HttpClient())
    {
        var data = await hc.GetAsync("www.google.com");
        return data.Content.Headers.Count();
    }
}

这里发生了什么事?

  1. 单击button1时,button1_Click将执行。
  2. 它首先将表单文本设置为“做某事.”
  3. 现在,它正在等待SomeHeavyWork()完成其工作。
  4. 我们现在退出button1_Click函数,并在单击button1(运行表单消息循环)之前进行操作。但是在其他地方,我们执行SomeHeavyWork()并等待它。
  5. SomeHeavyWork()作业完成后,我们返回到button1_Click并执行this.Text = result.ToString();行。

请阅读这个msdn文章

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

https://stackoverflow.com/questions/28000741

复制
相关文章

相似问题

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