gpt4 book ai didi

c# - 创建新任务会产生后台线程还是线程池线程

转载 作者:行者123 更新时间:2023-11-30 14:10:17 25 4
gpt4 key购买 nike

我正在尝试为 ASP.NET 应用程序进行数据库调用异步。如果我理解正确,我不想将线程池线程用于异步 I/O 调用,因此我可以保留线程池处理请求。下面的代码会从我的线程池中删除一个线程还是生成一个后台线程?

    public IEnumerable<dynamic> DbCall(string sql)
{
return // DB Operation;
}

public Task<IEnumerable<dynamic>> DbCallAsync(string sql)
{
var task = new Task<IEnumerable<dynamic>>(() => this.DbCall(sql));
task.Start();
return task;
}

最佳答案

是的,使用 Task 构造函数在另一个线程中执行代码,在本例中为线程池线程。

您应该使用本质上异步而非同步的数据库操作。您根本不应该使用 Task 构造函数来构造表示异步操作的 Task。您如何着手执行此操作取决于您使用什么 API 来执行您的 IO。

关于c# - 创建新任务会产生后台线程还是线程池线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24699526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com