221得票6回答
Task.Start/Wait和Async/Await有什么区别?

我可能有所遗漏,但是做以下两种操作有什么区别: public void MyMethod() { Task t = Task.Factory.StartNew(DoSomethingThatTakesTime); t.Wait(); UpdateLabelToSayItsComp...

79得票14回答
后缀自增和前缀自增的概念是什么?

我不理解后缀和前缀的自增或自减概念。有没有人能给出更好的解释呢?

76得票5回答
为什么TaskScheduler.Current是默认的TaskScheduler?

任务并行库很棒,我在过去几个月中经常使用它。然而,有一件事情真的困扰着我:TaskScheduler.Current 是默认任务调度程序,而不是 TaskScheduler.Default。这在文档和示例中一眼看上去绝对不明显。 Current 可能会导致微妙的错误,因为其行为取决于是否在另...

62得票4回答
抽象类 vs. 接口

我在Stack Overflow以及其他网站上搜寻了很多关于这个问题的答案, 但是没有一个让我真正理解的。我会换一种方式来表述这个问题,希望这样可以帮到其他人。 据我所知,除了抽象类具有方法实现的能力之外,这两个概念的规则是相同的。此外,我知道你可以实现多个接口而只扩展单个类,但我相信除了我...

49得票3回答
SynchronizationContext和TaskScheduler之间的概念差异是什么?

Stephen Toub的博客指出: 同步上下文(SynchronizationContext)和任务调度器(TaskScheduler)都是表示“调度程序”的抽象层级,你可以将一些工作交给它,然后它会决定何时何地运行该工作。有许多不同形式的调度程序。例如,线程池(ThreadPool)就是...

41得票13回答
CountDownLatch和CyclicBarrier的实际应用示例

我们的一位培训师在解释CountDownLatch和CyclicBarrier的区别时提供了一个示例。 CountDownLatch:假设有一块石头需要10个人才能举起,因此你需要等待所有10个人到齐,然后才能举起这块石头。 CyclicBarrier:如果你要去野餐,并且需要先在某个公共...

39得票5回答
REST API设计:嵌套集合与新根目录

这个问题涉及到REST API最佳设计以及我在选择嵌套资源和根级别集合之间遇到的问题。 为了说明概念,假设我有集合City, Business, 和 Employees。一个典型的API可能构建如下。假设ABC、X7N和WWW是键,例如guids:GET Api/City/ABC/Busin...

36得票1回答
SynchronizationContext.Send和SynchronizationContext.Post有什么区别?

感谢Jeremy Miller在Functional Programming For Everyday .NET Development中的好工作,我有一个可行的命令执行器,它可以做我想做的一切(在线程池中进行繁重的工作,将结果或错误发送回同步上下文,甚至将进度发布回同步上下文),但我无法解释...

30得票3回答
如何在UML类图中展示静态方法的使用

我如何在UML类图中展示静态方法的使用?class A{ public static void test(){ } } class B{ public void b(){ A.test(); } } 如果使用 UML 2.0,一个展示关系的类图会是什么样子?

30得票2回答
理解C# 5中async/await的上下文

我是否正确理解,async/await 本身与并发/并行无关,只是一种续传风格(CPS)实现?真正的线程处理是由 SynchronizationContext 实例执行,而 await 则进行传递/还原操作? 如果我的理解正确,那么我对 SynchronizationContext 有以下问...