C#人爱学不学9[C#5.0异步实例+WPF本身的MVVM Async应用 1/12]

文章摘要: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技术作一份贡献。-----------------

相关文章
相关标签/搜索