加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 我什么时候应该使用LongRunning Task Creation选项?

发布时间:2020-12-15 08:40:53 所属栏目:百科 来源:网络整理
导读:我有一个Azure Worker角色,它有三种类型的进程: C#线程从数据库读取并写入worker-input-queue(Task1) 从worker-input-queue读取的Java线程确实可以工作并写入worker-output-queue 从worker-output-queue读取并写入数据库的C#线程(Task2) Task1和Task2无限期
我有一个Azure Worker角色,它有三种类型的进程:

> C#线程从数据库读取并写入worker-input-queue(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任务创建选项吗?
>有没有更好的方法来实现我在这里尝试做的事情?

解决方法

如果你有一些长时间运行的线程,最好使用LongRunning选项.通过选择此选项,您将在线程池外部的线程中运行.这也是 explained by Stephen Toub(来自Parallel Extensions团队):

It’s not a specific length per se. If you’re generating a lot of tasks,LongRunning is not appropriate for them. If you’re generating one or two tasks that will persist for quite some time relative to the lifetime of your application,then LongRunning is something to consider.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读