我们有一个 Web 应用程序,可以监控多个社交媒体,例如 twitter/facebook。我们从这些社交媒体收到的数据正在保存到数据库中。数据很大,因此我考虑使用 Task
将数据保存到数据库中。
但我对它的工作原理有些担忧。在文档中找不到如果我为 1 个用户启动 10 个线程乘以 2000 个用户会发生什么?或者可能有 10.000 个用户。Task
究竟会做什么?这些 Threads
是否有某种队列?
对此问题的任何了解都将不胜感激。谢谢!
最佳答案
Task
只是一个可以调度到 TaskScheduler
队列的委托(delegate)的包装器。 Task
不创建任何线程。当您在内部调用 task.Start()
时,它会调用 taskScheduler.QueueTask(Task)
方法。
默认情况下,所有任务都使用 TaskScheduler.Default
,它在内部使用 ThreadPool
。
您可以在创建 TaskFactory
时指定自定义任务调度程序 - 此类具有接受 TaskScheduler
参数的构造函数。当前调度程序始终可通过 TaskScheduler.Current
属性获得。
关于c# - 并行性,1000 个线程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19241780/