2014-03-25 96 views
0

对不起,如果这是一个愚蠢的问题。我对wait()及其变体在任务并行库方面感到困惑。总是等待任务完成是否是一种好习惯?

我见过的每一个例子都等待完成任务 - 这是否被认为是良好的做法?

我的情况是,我正在开发一个将持续运行的Windows服务。我想参与一些任务,但我不在乎他们是否会跑完成 - 我会设置一个有效期的取消标记,如果出现错误,这会导致错误。所以我没有看到需要等待完成,但是每个例子都使用它...

+0

1.查看'wait()'在文档中做了什么2.“我需要这个吗?” 3.是 - >使用它,不 - >不使用它 –

+0

您是否在意每个任务可能抛出的异常,以及它们如何传播?它可能无法按照您的预期工作:http://stackoverflow.com/a/22395161/1768303 – Noseratio

+1

@TimCastelijns我可以 - 也有 - 研究过文档。然而我仍然感到困惑 - 因此,这个问题。我显然不像你那样能够胜任,但请考虑这个论坛被许多不同的人使用的观点,有些人 - 比如我自己 - 的能力不如别人。 –

回答

1

这真的取决于你的情况需要什么。例如,如果你想启动一个子程序来执行一个程序,例如说,并行发送一封电子邮件,你可以不用等待。

但是,如果您需要行动什么样的结果或结构受某些行为的影响,您将需要等待。

如果你的任务是独立的,不互相影响和/或彼此依赖,那么我不明白你为什么需要等待。

1

如果正在等待的代码需要输出任务才能继续执行,则只需要等待任务。如果你不需要那个输出,不要等待。

+0

我希望我能分享这个答案的荣誉,因为它们都令我满意。我实际上画了一个文字稻草来选择要标记的那个。非常感谢您的回答。 –

相关问题