0

我在将返回类型定义为任务的核心类库中为存储库提供了一堆接口。这些接口在其他项目中用于定义异步方法。

我需要在 Xamarain monodroid 项目中实现这些相同的接口,并且想知道如何在不使用异步等待的情况下使用相同的返回类型,因为 MonoDroid 尚不支持。如果可能的话,我根本不想修改现有的核心库接口。

4

1 回答 1

1

从技术上讲,您不必使用async/ await;这比“手工”做要容易得多。您的实现只需返回Task从未null启动且已经启动的 s(如果适用)。

TAP 文档有一些有用的技术和指南。一种密钥类型TaskCompletionSource<TResult>可用于包装任何异步实现(例如,APM)。同步实现可以使用(这Task.FromResult只是.TaskCompletionSourceTask.Factory.StartNew Task.RunContinueWith

换句话说,所有 .NET 4.0 TPL 技术都可以使用,只要您返回Task的 s 始终启动。(获得一个未启动的唯一方法Task是使用构造函数构造它Task而不是调用Start。所以只要你不这样做,你应该没问题。)

于 2013-03-05T14:49:53.567 回答