Tag: code contracts

代码契约和异步

将后置条件添加到返回Task异步方法的推荐方法是什么? 我已阅读以下建议: http://social.msdn.microsoft.com/Forums/hu-HU/async/thread/52fc521c-473e-4bb2-a666-6c97a4dd3a39 post建议将每个方法实现为同步,签约,然后将异步对应实现为简单的包装器。 不幸的是,我不认为这是一个可行的解决方案(也许是通过我自己的误解): 异步方法虽然被假定为同步方法的包装器,但是没有任何真正的代码契约,因此可以按照自己的意愿进行。 致力于异步的代码库不太可能为所有内容实现同步对应。 因此,实现包含await其他异步方法的新方法因此被强制为异步。 这些方法本质上是异步的,不能轻易转换为同步。 它们不仅仅是包装纸。 即使我们通过说我们可以使用.Result或.Wait()而不是await (这实际上会导致某些SyncContext死锁,并且无论如何都必须在异步方法中重写.Wait()来使后一点无效,我我仍然坚信第一点。 有没有其他想法,或者有什么我错过的代码合同和TPL?

.Net Code Contracts – 在哪里可以了解更多信息?

我最近在办公室里听到过关于.Net“合同”的一些讨论,然而,当我问我的一些同事时,他们不是很容易向我解释他们的用途,甚至是什么。 有没有人有任何资源,解释,也许还有他们使用的教程? 谢谢, 保罗