今天,我针对特定情况提出了具体问题。
public void Post(string requestUriString, string data,
System.Action callbackSuccess, System.Action callbackError);
哪个是实现此库的最佳方式(谈论性能和最佳实践)以及为什么?主要问题是要解释为什么一个解决方案可能比其他解决方案更好,并举一个例子(代码)。
我在下面的例子中思考,但我不知道哪一个可能更好,或者如果其中一个组合可能更好,或者......没有一个。
使用任务完成源。
public static class XXXExtensions
{
public static Task PostAsync(this XXX self, string requestUriString, string data)
{
var tcs = new TaskCompletionSource<bool>();
self.Post(
requestUriString,
data,
() => tcs.TrySetResult(true)
() => tcs.TrySetException(new Exception()));
return tcs.Task;
}
}
并像这样使用它:
await xxx.PostAsync(requestUriString, data);