【发布时间】:2012-11-29 18:14:57
【问题描述】:
我有一个包含三种类型进程的 Azure 辅助角色:
- 从数据库读取并写入worker-input-queue的C#线程(Task1)
- 从 worker-input-queue 读取的 Java 线程确实工作并写入 worker-output-queue
- 从worker-output-queue读取并写入数据库的C#线程(Task2)
Task1 和 Task2 无限期运行,如果它们各自的队列为空则休眠。
我的代码如下所示:
SpawnJavaProcesses();
Task.Factory.StartNew(Task1);
Task.Factory.StartNew(Task2);
while(true)
{
//do some trivial sporadic work
Thread.Sleep(60*1000);
}
我的问题:
- 我应该在启动 Task1 和 Task2 时使用 LongRunning 任务创建选项吗?
- 有没有更好的方法来实现我在这里尝试做的事情?
【问题讨论】:
-
虽然这适用于我的本地多核机器,但我发现上传到单核 Azure 角色时,只有主线程和 Java 进程获得执行时间,而 Task1 和 Task2 没有.这是否与单核系统上的任务使用有关?
标签: c# .net azure task-parallel-library