C#学习记录6——异步async 和 await

理解异步与双精度转换在C#中的应用
本文详细介绍了如何在C#中声明并使用异步方法,通过`async`关键字来提高程序效率,并阐述了`Double.Parse`与`Double.TryParse`的区别与应用场景。同时,解释了如何在不同的开发场景中灵活运用这些技术。

async可以声明异步处理过程。

一般是将方法声明为async,在其中有await内容

 1 private async void StartButton_Click(object sender, RoutedEventArgs e)
 2 {
 3 
 4     ResultsTextBox.Text += "\n";
 5     try
 6     {
 7         int length = await ExampleMethodAsync();
 8         ResultsTextBox.Text += String.Format("Length: {0}\n", length);
 9     }
10     catch (Exception)
11     {
12         // Process the exception if one occurs.
13     }
14 }
15 
16 public async Task<int> ExampleMethodAsync()
17 {
18     var httpClient = new HttpClient();
19     int exampleInt = (await httpClient.GetStringAsync("http://msdn.microsoft.com")).Length;
20     ResultsTextBox.Text += "Preparing to finish ExampleMethodAsync.\n";
21 
22     return exampleInt;
23 }
24 // Output:
25 // Preparing to finish ExampleMethodAsync.
26 // Length: 53292

在声明一个方法时,将其标为async,则说明方法中有await的异步内容。

调用async时,要使用await关键字。

在async方法中,会一直执行到await部分,这时将方法挂起,进行其他内容,等待其完成后,完成与其相关的部分。

如果程序包括从网络中下载获取数据,从文件中读入大量内容,这样占时较多的行为,将其设为异步执行可以很好的使整个程序更加流畅。

 

 

实例来源及参考链接:https://msdn.microsoft.com/zh-cn/library/hh156513.aspx

      https://msdn.microsoft.com/zh-cn/library/hh191443.aspx

2.Double.Parse和Double.TryParse都可以将字符串转化为double。例如“12345”可以转化为数字的12345

从名字上看,tryparse是不确定的转化,即在不确定string是否可以转换成double时使用。

当然,如果传入parse中的string也无法转换为double,也会出现错误。

两者的不同在于

  tryparse返回值类型为boolean,也就是说如果无法转换,就直接返回false

  而parse会直接转换,如果无法转换,会throw exception,内部如果无法解决,就会抛出方法。

  所以说,tryparse一般是用在if这样的语句里面例如:if(doublt.TryParse(str)){...}; 而parse是直接用赋值的,例如:double db=double.Parse(str);

  更多时候,TryParse是用另一种用法: double db; if(doublt.TryParse(str, out db)){...};如果转换成功,将db赋值为该值

转载于:https://www.cnblogs.com/sywang/p/4439506.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值