c# – 创建新任务是否会生成后台线程或线程池线程

c# – 创建新任务是否会生成后台线程或线程池线程,第1张

概述我正在尝试为ASP.NET应用程序创建数据库调用异步.如果我理解正确,我不想利用线程池线程进行异步I / O调用,这样我就可以保持线程池处理请求.下面的代码会从我的线程池中剔除一个线程还是生成一个后台线程? public IEnumerable<dynamic> DbCall(string sql) { return // DB Operation; } 我正在尝试为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.如何执行此 *** 作取决于您用于执行IO的API.

总结

以上是内存溢出为你收集整理的c# – 创建新任务是否会生成后台线程或线程池线程全部内容,希望文章能够帮你解决c# – 创建新任务是否会生成后台线程或线程池线程所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1219170.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存