文章摘要:html
1. 经过简单DEMO.让读者理解Task和Task<T> 学习过程当中,掌握async和awaitapp
2. 理解同步和异步的执行异步
3. Task.Factory.StartNew()的替代async
4. WPF中传统方式async的应用,让界面不卡post
5. Ay 自编的无任何组件的 快速的MVVM应用,Async版本,实战DEMO学习
如下DEMO 以vs2013开发 .Net Framework4.5+ 控制台程序为主this
前言: async标记 await异步执行方法,可返回值可不返回,返回值则async Task<T> 不返回则async Taskspa
实验1:.net
使用Task.Delay(TimeSpan)担任耗时操做code
第一课,理解何时Task和Task<T>,同步与异步
返现目前是同步的执行,并且AddNum画了绿色的线条,咱们使用 .Result()拿到Task返回的值
public MainViewModel() { this.ImportDataCommand = new DelegateCommand(this.ImportData); }
OK,目前为止ViewModel算写完了,很简单吧,咱们打开MainWindow,按照MVVM的写法,都是讲ViewModel赋予窗体的DataContext
public MainWindow() { InitializeComponent(); this.DataContext = new MainViewModel(); }
而窗体对应的xaml中 都是binding对应ViewModel能绑定的东西,绑定吧!!!
<Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" WindowStartupLocation="CenterScreen" Title="www.ayjs.net aaronyang" Height="350" Width="525"> <Grid> <Button Content="导入数据" HorizontalAlignment="Left" Command="{Binding ImportDataCommand}" Margin="133,32,0,0" VerticalAlignment="Top" Width="190" Height="26"/> <TextBox x:Name="txtResult" HorizontalAlignment="Left" Height="24" Margin="133,87,0,0" TextWrapping="Wrap" Text="{Binding ImportResult}" VerticalAlignment="Top" Width="210"/> </Grid> </Window>
运行吧! 效果同样,主窗体没有阻塞,效果照样能运行.
好了,今天的内容现讲到这里.喜欢的朋友,能够推推荐哦
文章已经迁移: http://www.ayjs.net/post/87.html
官网阅读:http://www.ayjs.net/post/87.html
=============潇洒的版权线==========www.ayjs.net===== Aaronyang ========= AY =========== 安徽 六安 杨洋 ========== 未经容许不准转载 =========
-------------------小小的推荐,做者的确定,读者的支持。推不推荐不重要,重要的是但愿你们能把WPF推广出去,别让这么好的技术消失了,求求了,让咱们为WPF技术作一份贡献。-----------------