我必须为 WinCE 5.0 开发一个应用程序,该应用程序与常规 PC 应用程序通信/同步数据,该应用程序提供可以与我的移动(工业)设备通信的 Web 服务。
由于很明显会导致代码难以在移动设备端维护(检查连接→完成时:检查网络服务可用性→完成时:检查移动设备是否符合同步条件→完成时开始交换数据)我很喜欢使用await
s 的同步编程方式。
我找到了 Daniel Grunwald 的一些代码片段,它是编译器为 async/await 功能所需的东西的最小实现。例如,与实现 Task 类型的 .Net 3.5 的任务并行库(我不得不稍微更改,因为某些调用的方法不存在所需的签名)一起,它看起来很有希望。
到目前为止,解决方案还没有建立,因为我缺乏TaskCompletionSource
. 我用 ILSpy 反编译了最近的 mscorlib,但代码不可用 - 使用的类型太多,CF 中不存在。
在这一点上,我想知道这个项目是否注定会失败,因为我永远不会说服 VS 2008(我必须使用它来定位智能设备)使用 C# 5 编译器(也许有解决方法?),或者CF 缺少 TaskCompletionSource 的关键类型(我可能需要它,因为我想让事件等待),或者 TPL3.5 + Grunwald 的片段 + TCS 实现将构建但从未真正起作用。
可以请更有经验的人评估我的意图吗?很想听听您的意见、想法和替代方法。谢谢。
更新 Aaron Stainback 的帖子表明应该可以使用 VS2012 构建 CF 3.5。那至少应该解决编译器问题。