0

我是 Metro 应用程序开发的新手,我请求您帮助我了解 async 和 await 关键字的用法,

据我所知,我知道我们同时异步和等待两者。

但是,如果将一种方法/功能提到为异步:-

private async void Button_Click_1(object sender, RoutedEventArgs e)
{
    Uri inputUri  = new Uri("http://examplewebservices");

    try
    {

   string result =  await httpClient.GetStringAsync(inputUri);

///
i have to do some operations on this string result here 
///

    }
    catch (Exception ex)
    {

    }
}    

1)创建一个单独的线程会发生什么?以及异步运行的每件事?

2) await 关键字在这里做什么?

3)如果它是异步的,代码中有我需要对字符串结果执行一些操作的地方,如果没有完成它会显示错误吗?

请指导我。

提前致谢。

4

1 回答 1

4

请阅读我的async/await介绍

1)创建一个单独的线程会发生什么?以及异步运行的每件事?

不,async方法是同步的,直到它们await的操作未完成。

2) await 关键字在这里做什么?

它将异步等待操作完成。

在这种情况下,它将返回到消息循环并安排方法的其余部分在下载完成后运行(在 UI 线程上)。

3)如果它是异步的,代码中有我需要对字符串结果执行一些操作的地方,如果没有完成它会显示错误吗?

不会。由于 ,await该方法的其余部分在下载完成之前不会运行。

于 2012-07-29T13:33:00.750 回答