【发布时间】:2013-07-22 18:47:31
【问题描述】:
我用的是MonoGame,不过这个跟winrt async和IO关系比较大,所以请不要重定向到gamedev。
我想异步加载游戏内容,以便更新加载屏幕的进度。我将每个 ContentManager.Load 调用放在一个 Task 中,然后放在我的 BeginLoading 方法中,我只是遍历所有任务并一次性启动它们。
到目前为止,这似乎在我的测试中有效,但我的问题是这是否可以扩展。
如果我为异步添加 100 个资产,这将产生 100 个任务,这些任务将同时从磁盘 al 中读取。 WinRT 可以这样扩展吗?
实际上,我是否应该将任务数量限制为核心/物理胎面的数量?还是我应该只有一个活动任务?
【问题讨论】:
-
为什么不只有一个任务来加载所有内容?
-
我根据已完成任务的数量更新加载进度(加载百分比)。每个 Content.Load 调用创建一个任务也更容易。除非有人有更好的建议。
标签: .net io .net-4.5 monogame winrt-async