后台线程运行速度比其他线程慢吗?

问题描述 投票:0回答:1

我有一个作为 Windows 服务运行的 C# 控制台应用程序。它实现了

BackgroundService
,这是实现 Windows 服务的推荐方式

此外,我正在使用 Hangfire 来启动我的任务。

我注意到较长的运行任务需要近 11 分钟,而在我的本地计算机上运行相同的任务(不是作为 Windows 服务,不使用

BackgroundService
,并且处于调试模式)需要不到 6 分钟。

我是否假设后台线程通常运行速度较慢?或者这里可能还存在其他问题?

代码本身对 SQL Server 数据库中的数据执行一系列计算并更新数据。

c# multithreading .net-core windows-services backgroundworker
1个回答
0
投票

线程按照给定的优先级运行,您可以为特定任务赋予更高的优先级,这意味着它将在任何较低优先级的线程之前执行。后台线程可以具有比其他线程更高的优先级,而 UI 线程可以具有较低的优先级。

实际上,这并没有多大区别,因为您可能拥有多线程/核心处理器。

如果您正在访问数据库,您的线程/任务可能正在等待数据库服务器回复(I/O 绑定操作)。除非您正在执行非常复杂的计算(CPU 密集型操作),否则线程可能正在等待外部事件发生,而这是您无法控制的。

© www.soinside.com 2019 - 2024. All rights reserved.