WinPhone8.1异步编程

什么是异步编程?

采用异步编程是为了解决等待磁盘IO而造成的性能瓶颈问题。

什么时候应用异步编程?

你在请求一个Web服务的时候,需要进行网络传输资源,这时候就可以开一个新的线程去处理这些工作,主线程不必等待传输的完成。总的来说在网络编程、IO和数据库读写都可以使用异步编程。

Demo Time!

首先我们写一个小例子来理解一下什么是异步编程。

建一个Winphone程序,我们在OnNavigatedTo函数中调用一个AsyncFunction方法让线程休息2秒(你也可以让他做点别的事情),打印出OnNavigatedTo函数和AsyncFunction函数执行的开始、结束,代码如下:

        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            txt.Text = "OnNavigatedTo开始执行"+"-->";
            AsyncFunction();
            txt.Text += "OnNavigatedTo执行结束" + "-->";
        }

        private async void AsyncFunction()
        {
            txt.Text += "AsyncFunction开始执行" + "-->";
            await Task.Delay(2000);
            txt.Text += "AsyncFunction执行结束";
        }

执行结果:

WinPhone8.1异步编程

从执行结果我们可以看到,程序从OnNavigatedTo方法进入,调用AsyncFunction方法后,开了一个新的线程去执行AsyncFunction中的语句,主线程没有等待,继续执行。

有没有感觉很爽?

WinPhone8.1异步编程

上一篇:sqlalchemy多线程访问数据库


下一篇:MySQL支持的字符集