zoukankan      html  css  js  c++  java
  • 十六、异步编程——messagedialog

    1、异步方法不用等任务结束后就可以返回。异步编程可以避免界面卡死的问题,但是会导致编写“等待一个异步操作执行完成再执行一段代码”的程序很麻烦。

    2、在.net4.5中引入了async  await关键字,可以在异步方法调用前加入await关键字,这样方法中这一行之后的代码都将在异步方法执行完成后才执行。注意:一个方法中如果有await,则必须将方法中注明async。

    3、可以直接在await前声明变量,当异步方法执行完成后把执行结果返回设置给变量,一般用var自动推断。

    4、winRT中所有执行时间可能会比较长的操作都被微软强制设置为异步方法。

    以MessageDialog为例

     //方法内部只要出现await,方法就要标注为async

            private async void Button_Click2(object sender, RoutedEventArgs e)

            {

                MessageDialog msg = new MessageDialog("hello");

                msg.Commands.Add(new UICommand("yes") { Id=1});

                msg.Commands.Add(new UICommand("no") { Id=2});

                //异步方法都可以用await关键字

                //只有等异步方法执行结束后,才继续往下执行,并且返回值中有执行结果。这就使得“好像同步”,但其实还是异步,只是编译器中的委托机制给我们的错觉

                var result = await msg.ShowAsync();

                if ((int)result.Id == 1)

                {

                }

                else if ((int)result.Id == 2)

                {

                }

                else

                {

                }

            }

    另外还可以参照连接(创建自定义的MessageDialog):http://www.cppblog.com/DinoLegend/archive/2012/10/11/193184.aspx

  • 相关阅读:
    纯JS制作选项卡--JavaScript实例集锦(初学)
    超级简单实用的CSS3动画,增添网页效果
    3种方法实现图片瀑布流的效果(纯JS,Jquery,CSS)
    CSS动画小结
    遗忘比死亡更可怕
    matplotlib笔记2
    matplotlib笔记1
    pandas数据结构之Panel笔记
    pandas数据结构之Series笔记
    ndarray笔记续
  • 原文地址:https://www.cnblogs.com/suinuaner/p/sixteen.html
Copyright © 2011-2022 走看看