“长期使命”是什么意思?默认情况下,CLR在池化线程上运行任务,这对于短期运行的计算密集型工作来说是理想的。对于长时间运行和阻塞操作,您可以阻止使用池化线程,如下所示:Tasktask=Task.Factory.StartNew(()=>...,TaskCreationOptions.LongRunning);我正在阅读有关线程和任务主题的信息。你能解释一下“long[er]-run”和“sprint”任务是什么吗?在一般的线程池中,可以通过比较启动时间和运行时间来区分短线程和长线程。线程通常需要一些时间来创建和开始运行代码。这意味着如果你运行大量线程,每个线程启动需要一分钟但只运行一秒(不是精确的时间,但这里的目的只是为了显示关系),每个线程的运行时间将第一次放它们时不知所措。这是使用线程池的原因之一:线程在完成工作后不会终止。相反,它们可以被重复使用,这样启动时间就不再重新开始了。因此,从这个意义上讲,长时间运行的线程的运行时间比启动它所花费的时间要长得多。在这种情况下,启动时间远不如短时间运行的线程重要。相反,短时间运行的线程运行时间小于或等于启动时间。特别是对于.NET,它的操作有点不同。一旦线程池代码达到最小线程数,它就会尝试将线程创建限制为每半秒一个。所以如果你知道你的线程将运行很长时间,你应该通知调度器,以便它可以相应地调整自己。这可能意味着只创建一个新线程而不是从池中取出一个线程,这将允许池按预期服务短期运行的任务(无法保证行为,但这样做是有意义的)。但是,这并没有改变长期与短期的含义,只是意味着存在一些区分两者的阈值。对于.NET,我建议半秒数字是一个不错的选择。以上是C#学习教程:“长期任务”是什么意思?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
