转自:http://blogs.msdn.com/b/windowsappdev_cn/archive/2012/06/22/net-winrt.aspx 在博文深入探究 Await 和 WinRT 中,我们讨论了 C# 和 Visual Basic 中新增的 async 和 await 关键字,以及如何使用它们执行 Windows 运行时 (WinRT) 异步操作. 在 .NET 基本类库 (BCL) 的辅助下,您还可以使用这些关键字来设计异步操作,然后通过 WinRT 公开这些操作,以使其适…
接上篇Windows store app[Part 3]:认识WinRT的异步机制 WinRT异步机制回顾: IAsyncInfo接口:WinRT下异步功能的核心,该接口提供所有异步操作的基本功能,如标识.状态.操作. IAsyncInfo: public interface IAsyncInfo { AsyncStatus Status { get; } HResult ErrorCode { get; } uint Id { get; } void Cancel(); void Close(…
在最近发布的使用 Windows 运行时中异步性来始终保持应用程序能够快速流畅地运行这篇博文中,包含了一些如何在 C# 和 Visual Basic 中使用 await 关键字的示例,允许开发人员在使用 WinRT 异步操作的同时,保持和推导良好的控制流. 在接下来的博文中,我将更加深入地介绍 await 在 WinRT 中的工作原理.这些知识将帮助您更轻松地推导使用 await 的代码,进而帮助您编写更出色的 Metro 风格应用程序. 首先,我们先来审视一下没有 await 的情况. 基础知…
转自:http://blogs.msdn.com/b/windowsappdev_cn/archive/2012/03/26/windows.aspx 人类的思维方式在本质上不是同步的,这直接影响着我们对应用程序响应方式的预期.在构建快速流畅的 Metro 风格应用程序的过程中,Windows 运行时 (WinRT) 将这种异步性视为头等大事.如果您要构建 Metro 风格的应用程序,有时需要编写一些异步代码.在本博文中,我们将讨论异步编程在 WinRT 中得以普遍采用的原因所在,还将介绍在应用…
上篇博客[用Asp.net写自己的服务框架] 我讲述了如何实现自己的服务框架,但我想很多人应该用过WebService这类服务框架,相比起来,似乎还缺少什么东西, 是的,我也感觉到了.比如:我可以很容易地利用WebService, WCF框架编写一个服务, 在客户端也可以很容易地通过[添加服务引用]的方式来生成一个代理类,然后就可以调用服务了,非常简单, 更酷的是,IDE生成的代理类还有异步调用功能! 我一直认为,对于服务框架来说,最重要的事是将一个C#方法公开为一个服务方法,供远程客户端调用.…
win8 新引入了称为WinRT的核心API.支持使用C/C++..NET或JavaScript来开发Metro风格的应用.这些应用自动获得硬件加速和高级电源管理的功能.现有的Silverlight和WPF应用程序可以以最小的代价移植到新的“Native XAML”库. 以下是主题演讲的摘要.当它们发布时,将提供更多细节. 概要 Windows 8: 基本内存使用从540MB降到281MB. 锁屏将显示用户内容. 触摸式密码,基本上是点击图像上的三个点给机器解锁. 类似Windows Phone…
一.CLR线程池基础 前面说过,创建和销毁线程是一个比较昂贵的操作,太多的线程也会浪费内存资源.由于操作系统必须调度可运行的线程并执行上下文切换,所以太多的线程还有损于性能.为了改善这个情况,CLR使用了代码来管理它自己的线程池.可将线程池想像成可由你的应用程序使用的一个线程集合.每个进程都有一个线程池,它在各个应用程序域(AppDomain)是共享的.     CLR初始化时,线程池是没有线程的.在内部,线程池维护了一个操作请求队列.应用程序想执行一个异步操作时,就调用某个方法,将一个记录项(…
本文介绍了BackgroundWorker组件的功能及在基于事件的异步操作编程中的应用,并对组件的实现原理进行简述.在应用程序中,可能会遇到一些执行耗时的功能操作,比如数据下载.复杂计算及数据库事务等,一般这样的功能会在单独的线程上实现,执行结束后结果显示到用户界面上,这样可避免造成用户界面长时间无响应情况.在.NET 2.0及以后的版本中,FCL提供了BackgroundWorker组件来方便的实现这些功能要求. 组件介绍 BackgroundWorker类位于System.Component…
目录结构: contents structure [+] 线程池简介 执行上下文(Execution Context) CancelTokenSource的使用 ThreadPool Task和Task<TResult> 等待任务执行完成并获取结果 ContinueWith(XXX)方法的使用 子任务 任务工厂(TaskFactory) 任务调度器 Timer定时器 Parallel 并行语言集成查询(PLINQ) 这篇文章是C#线程系列的第一篇,在开发中经常会涉及到线程的使用.那么读者有思考…
WinRT异步机制的诞生背景 当编写一个触控应用程序时,执行一个耗时函数,并通知UI更新,我们希望所有的交互过程都可以做出快速的反应.流畅的操作感变的十分重要. 在连接外部程序接口获取数据,操作本地数据等任务时,如果构建方式错误,应用程序会将大量的时间花费等待外部环境上,从而无法保证足够的时间来响应用户的需求. 之前公司的项目需要在Win7系统下编写触控应用程序,不管同事们如何努力的优化着代码,都不能使操作体验达到需求的要求.究其原因,Win7与.NET Framework不是为触控而设计,在进…