14首先要理解的是“任务”和“线程”的区别。“给我做个三明治”是一个任务,“雇佣一名厨师”则是创建一个线程。如果你混淆了这两件事情,那么你要么会雇佣许多不必要的厨师但却吃不掉他们做的食物,要么你会要求一堆三明治为你做晚餐。你决定使用任务还是线程的方式是,决定是否想代表代码中的任务,而不考虑谁来执行任务,或者你是否想代表执行任务的工作人员。 - Eric Lippert
4它们是首选方法,因为它们重新聚焦代码以强调正在执行的任务而不是执行它们的工作者。线程代码的大多数问题都源于协调工作人员--线程的困难。如果你从事吃三明治的业务,最好能够说“我需要一百个三明治”,然后让任务库决定雇用多少厨师。 - Eric Lippert