VB.NET-此代码是否正确执行ThreadPool?

用户名

代码:

'Get the Thread Count - Lets say this value was 150;
Dim threads As Integer = CheckerThreads.Value

'Set the Thread Count;
ThreadPool.SetMinThreads(threads, threads)
ThreadPool.SetMaxThreads(threads, threads)
ServicePointManager.DefaultConnectionLimit = threads
ServicePointManager.Expect100Continue = True

'For Each proxy from the Opened File;
For Each Proxy In proxies

    'Check the Proxy;
    ThreadPool.QueueUserWorkItem(New WaitCallback(AddressOf CheckProxy), Proxy)

Next

上面的代码从中获取每个代理,List()并仅使用WebRequest来检查代理,但这没关系,我想知道的是使用For Each我所拥有的方式,是否像我认为的那样执行,还是我做了有事吗?

以下哪项正在发生?:

1-是否正在检查150个进程中的1个代理?

-或者-

2-是否每个进程检查1个代理,同时检查150个进程?

如果它正在做#1,那我怎么解决它才能做#2

金西尼

分配给线程的任务将在同一时间范围内执行。我之所以这样说,是因为实际上可以完全同时处理两个任务的唯一方法是使用多个处理器内核。显然,您没有150个处理器核心,因此无法同时处理150个任务。但是,它们将如此交错,因为处理器工作得如此之快,所以肉眼看起来它们是同时进行处理的。

我建议您阅读相关文档的原因是,弄乱线程数实际上会损害性能。激活了这么多线程,由于所有上下文切换,您可能会导致事情变慢。如文档所述,通常最好只是将所有内容排入队列,让系统处理其余部分。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

VB.NET模块代码正在执行而未执行

来自分类Dev

如何从vb,net后面的代码调用此Js func

来自分类Dev

如何在vb.net中缩短此代码?

来自分类Dev

VB.Net中的VB6的vbNull是否等效?

来自分类Dev

访问10是否使用VB 6或VB.Net

来自分类Dev

执行.bat文件vb.net

来自分类Dev

用vb.net执行存储过程

来自分类Dev

VB.Net For Loop无法执行

来自分类Dev

VB Net ObservableCollection无法正确更新ListView

来自分类Dev

VB.Net异步正确使用Await

来自分类Dev

这个VB.NET代码如何评估?

来自分类Dev

在Javascript中使用vb.net代码

来自分类Dev

vb.net代码读取标签错误

来自分类Dev

在vb.net中使用ANSI代码

来自分类Dev

VB.Net代码冒号分组缩进:

来自分类Dev

以代码构建DataGridView显示(VB 2010 NET)

来自分类Dev

VB.net中CreateObject的等效代码

来自分类Dev

VB.Net代码和JSON类

来自分类Dev

在vb.net中使用ANSI代码

来自分类Dev

VB.net通过HTML代码搜索

来自分类Dev

每1在vb中执行此代码

来自分类Dev

使用 .net 1.1 在 vb.net 中执行 php 脚本

来自分类Dev

此VB.net代码中的语法错误在哪里?

来自分类Dev

如何使用vb.net获取此界面?

来自分类Dev

将设置保存到可执行VB.Net

来自分类Dev

vb.Net&Access是/否SQL执行错误

来自分类Dev

使用VB.NET执行存储过程(更新表)

来自分类Dev

从vb.net内部执行Powershell命令“ Get-Volume”

来自分类Dev

ASP NET MVC VB如果searchstring为空,则执行LINQ