Vb.net TPL数据流块中具有不同参数的相同委托
我的TPL数据流管道使用多个相同的块,唯一的区别是每个块都使用它的个人代理发送http请求。所以Vb.net TPL数据流块中具有不同参数的相同委托,vb.net,delegates,task-parallel-library,tpl-dataflow,addressof,Vb.net,Delegates,Task Parallel Library,Tpl Dataflow,Addressof,我的TPL数据流管道使用多个相同的块,唯一的区别是每个块都使用它的个人代理发送http请求。所以WebProxy这里有一个参数。我这样做是为了创建它们(概念上的简化示例,WebProxy替换为blockNum Integer): 我使用lambda表达式。这会引起一些麻烦。所以问题是:如何用委托函数替换它。我的意思是使用AddressOfSmthn。我需要以某种方式将blockNum传递给每个块 更新: 我不想使用lambda的原因有两种: 首先:我的lambda表达式太大,很难使用它并在编辑器
WebProxy
这里有一个参数。我这样做是为了创建它们(概念上的简化示例,WebProxy
替换为blockNum Integer
):
我使用lambda表达式。这会引起一些麻烦。所以问题是:如何用委托函数替换它。我的意思是使用AddressOf
Smthn。我需要以某种方式将blockNum
传递给每个块
更新:
我不想使用lambda的原因有两种:
首先:我的lambda表达式太大,很难使用它并在编辑器中修改它:如果出现错误,整个表达式就会出错
第二:我想用数据流管道创建一个基类,并且只更改派生类中的块委托。为什么不将所有代码从lambda移到一个实函数中呢。然后创建一个小lambda来捕获blockNum并将其传递给所述函数?它会导致什么样的问题?
Private Sub CreateBlocks()
Dim blocks As New List(Of TransformBlock(Of Integer, Integer))
For i = 0 To 100
Dim blockNum As Integer = i
Dim block As New TransformBlock(Of Integer, Integer)(Function(_arg)
Return _arg + blockNum
End Function)
blocks.Add(block)
Next
End Sub