Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#线程池的真正好处_C#_Multithreading - Fatal编程技术网

C#线程池的真正好处

C#线程池的真正好处,c#,multithreading,C#,Multithreading,我正在为我们目前正在开发的应用程序优化代码。当前的实现包括创建一个线程,以持续轮询服务器以获取新数据。 如果找到了新数据,则线程会生成多个线程(每次都创建)来检索数据 我正在阅读关于使用线程池更改代码是否会导致明显的差异。如果您创建了一个长时间运行的线程来执行轮询,您不会注意到太大的差异。不可否认,你现在可能有一个睡眠,所以你有一个线程比你需要的时间多很多(与基于计时器的解决方案相比),但它基本上是好的 当您有很多短期操作时,线程池特别好。启动一个线程并不是免费的,如果实际工作很琐碎,那么开销就

我正在为我们目前正在开发的应用程序优化代码。当前的实现包括创建一个线程,以持续轮询服务器以获取新数据。 如果找到了新数据,则线程会生成多个线程(每次都创建)来检索数据


我正在阅读关于使用线程池更改代码是否会导致明显的差异。如果您创建了一个长时间运行的线程来执行轮询,您不会注意到太大的差异。不可否认,你现在可能有一个睡眠,所以你有一个线程比你需要的时间多很多(与基于计时器的解决方案相比),但它基本上是好的

当您有很多短期操作时,线程池特别好。启动一个线程并不是免费的,如果实际工作很琐碎,那么开销就相当大。线程池只是将实际线程挂起,等待工作项。然后,他们可以用很少的开销执行这些工作项


对于单个长时间运行的任务,开销与在任务本身中花费的时间相比是微不足道的,因此您不会注意到任何差异。

如果您创建了一个长时间运行的线程来执行轮询,您不会注意到太多差异。不可否认,你现在可能有一个睡眠,所以你有一个线程比你需要的时间多很多(与基于计时器的解决方案相比),但它基本上是好的

当您有很多短期操作时,线程池特别好。启动一个线程并不是免费的,如果实际工作很琐碎,那么开销就相当大。线程池只是将实际线程挂起,等待工作项。然后,他们可以用很少的开销执行这些工作项


对于一个长时间运行的任务,与任务本身花费的时间相比,开销是微不足道的,因此您不会注意到任何差异。

我想我最初的帖子可能会被搞混了。每次轮询服务器和新数据可用时,初始的持久线程将不断生成多个线程。关于优化,我的问题是,我是否会注意到将连续多个衍生线程转换为线程池的好处,或者收益是否可以忽略不计。为什么要麻烦衍生多个线程呢?为什么不从持久的轮询线程开始呢?这取决于每个线程运行的时间,以及它们产生的频率。我想我最初的帖子可能有点困惑。每次轮询服务器和新数据可用时,初始的持久线程将不断生成多个线程。关于优化,我的问题是,我是否会注意到将连续多个衍生线程转换为线程池的好处,或者收益是否可以忽略不计。为什么要麻烦衍生多个线程呢?为什么不直接从持久的轮询线程执行呢?这取决于每个线程运行的时间以及它们产生的频率。