论道Windows Phone(六 ) 任务并行库

页面加载很卡

我的一个应用程序有一个用来管理原材料库的页面,如图1所示,这是一个Pivot页面,每个Pivot项列出一类原材料 。整个Pivot页面绑到一个ManageIngredientsViewModel对象,每个Pivot项绑到一个IngredientGroupViewModel对象,这些 IngredientGroupViewModel对象是在运行时根据原材料库的数据创建的。

图 1

目前的做法是在 ManageIngredientsViewModel的构造函数里通过LINQ to SQL加载数据,然后创建相应的IngredientGroupViewModel对象,如代码1所示。这种 同步加载数据的做法很常见,也很直观,不过,如果数据比较多,并且伴随磁盘或者网络的访问,就有可能导致页面加载很卡。

计算">

代码 1

我希望异步加载数据,并且只在用户查看某个Pivot项时才加载它的数据,这样可以确保页面保持响应,同时又能避免加载 多余的数据。在这篇文章里,我们将会以这个应用程序为背景探讨如何通过任务并行库(Task Parallel Library,TPL)实现这些效果。

启动任务

首先,我不希望一开始就加载所有数据,因此把前面的代码1换成下面的代码2,新的代码负责创建一组空的 IngredientGroupViewModel对象。由于Pivot控件的ItemsSource属性和ManageIngredientsViewModel对象的IngredientGroups属性绑定, Pivot控件会自动创建一组空的Pivot项。

代码 2

时间: 2024-09-14 13:57:06

论道Windows Phone(六 ) 任务并行库的相关文章

windows ndk 编译 boost网络库

问题描述 windows ndk 编译 boost网络库 求指教,小弟,不会弄那个路径,不知道咋配置BOOST路径就指教 解决方案 参考:http://blog.csdn.net/ly131420/article/details/46648125 解决方案二: 在windows下编译boost库如何在WINDOWS下编译BOOST C++库ndk 编译 boost 库

一个golang并行库源码解析

场景 有这样一种场景:四个任务A.B.C, D,其中任务B和C需要并发执行,得到结果1, 任务A执行得到结果2, 结果1和2作为任务D的参数传入,然后执行任务D得到最终结果.我们可以将任务执行顺序用如下图标识: jobA jobB jobC \ \ / \ \ / \ middle \ / \ / jobD 这是一个典型的多任务并发场景,实际上随着任务数量的增多,任务逻辑会更加复杂,如何编写可维护健壮的逻辑代码变得十分重要,虽然golang提供了同步机制,但是需要写很多重复无用的Add/Wait

java调用windows自带的语音库

问题描述 java调用windows自带的语音库 我想做一个英语教学软件,其中用到tts,但是java如何才能用已经安装的语音库来进行发音(现在就是不清楚要调用那些dll,dll里面有哪些方法)? 解决方案 http://download.csdn.net/detail/qq781299372/3855882 解决方案二: tts运行库http://mydown.yesky.com/soft/255/255680_more.shtml xp以上,非精简的系统都是自带. 解决方案三: http:/

如何在WINDOWS下编译BOOST C++库 .

如何在WINDOWS下编译BOOST C++库 cheungmine 2008-6-25   写出来,怕自己以后忘记了,也为初学者参考.使用VC8.0和boost1.35.0.   1)下载boost http://www.boost.org/users/download/ 这是它的下载页面,需要下载2个东西: Packaged Releases VERSION 1.35.0 和 Boost Jam 3.1.16   你需要在每个条目下面找到Details | Download字样,点击Down

轻松开启和禁用Windows 7中的Libraries(库)文件夹

为了更好地理解Windows 7中库的概念,我们有必要先回顾一下此前Windows版本中的类似功能.在Windows XP和Vista中,微软给用户提供了一系列特殊的文件夹用于存放个人文档和图片等.在Vista中,这些文件夹的设计是为了帮助用户更快地找到想要找到的文件.不过包括我在内的很多用户还是会在硬盘上到处放文件,这就给系统的索引和搜索带来一定的问题. 因此,在Windows 7中,微软引入了库的概念,这样一来,用户就可以自定义库中的文件夹以迅速找到它们. 在Windows 7中,库是资源管

论道Windows Phone (一) 你为什么选择Windows Phone

L1:欢迎来到<论道WP>,我是主持人李永伦,今天我们迎来了一个非常特殊的嘉宾,掌声有请我的分身李永伦. L2:什么情况?你才 是我的分身! L1:好吧,这个问题等节目结束之 后我们再讨论吧,回到这次节目的主题,你为什么会选择Windows Phone呢? L2:这个问题几乎每次做培训或讲座都会有人问,我的回答很 简单,因为我能开发Windows Phone的应用程序. L1:这是不是意味着,如果你能开发iOS或Android的应用程序,你也会选择它们? L2 :理论上有这种可能. L1:实际

Windows 7开发:Shell库

任务 5 – 添加 SaveFolder, NavPanePinnedState, Icon, 和 FolderType 命令 这三个命令共享公用行为.首先,用户只需要提供库的名称,就可以使用这些命令查询 到当前该库的状态.其次,为了实现这些命令,Windows API将这些作为ShellLibrary中的 属性,暴露给我们. C# // Summary: // By default, this folder is the first location added to the library.

Windows 10系统如何显示库出来?

在windows 10 系统桌面我们点击"此电脑"然后我们再点击查看.导航窗口.显示库,具体如下图所示:       好了这样点击几下之后我们在左边就会看到我们习惯的"库"了.   其实这个库功能小编觉得就是以前xp系统的资源管理器了,这个非常的像呀,我现在用的xp 好像也有此功能哦.

第二十六节 使用库

库的用途和模版比较类似,都是可将同一内容用于不同的网页.但库比较小巧,只是使用了一个或几个页面元素.应用模版,则网页的大体结构和内容已确定,只需更改部分内容:而应用库,只是往页面中加入部分页面元素. 点击菜单栏的Window\Library,或点击Launcher面板左起第二个图标,或直接使用F6,弹出库面板.(库面板) 库由一个个条目组成.可新建一个条目,也可把已存在的页面元素设置为条目.要新建一个条目,点击库面板右下方的图标即可.这时,面板上多出一个名为untitle的项,此时可改变它的名称