我有一个Azure辅助角色,它有三种类型的过程:
Task1和Task2无限期运行,如果各自的队列为空,则会休眠。
我的代码如下所示:
SpawnJavaProcesses();
Task.Factory.StartNew(Task1);
Task.Factory.StartNew(Task2);
while(true)
{
//do some trivial sporadic work
Thread.Sleep(60*1000);
}
我的问题:
答案 0 :(得分:6)
如果你有一些长时间运行的线程,最好使用LongRunning选项。通过选择此选项,您将在线程池外部的线程中运行。这也是explained by Stephen Toub(来自Parallel Extensions团队):
这本身并不是特定的长度。如果你产生了很多 任务,LongRunning不适合他们。如果你正在产生 一两个任务将持续相当长的一段时间 你的应用程序的生命周期,然后LongRunning是一些东西 考虑