私の TPL Dataflow パイプラインは複数の同じブロックを使用します。唯一の違いは、それぞれが個人のプロキシを使用して http 要求を送信することです。ここWebProxy
にパラメータがあります。私はそれらを作成するために次のように振る舞います (概念的な単純化された例を にWebProxy
置き換えblockNum Integer
ます):
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
ラムダ式を使用しています。それはいくつかのトラブルを引き起こします。問題は、どうすればそれをデリゲート関数に置き換えることができるかということです。AddressOf
つまり、 Smthnを使用します。blockNum
どうにかして各ブロックに渡す必要があります。
アップデート:
ラムダを使いたくない理由には、次の 2 種類の問題があります。
まず、ラムダ式が大きすぎます。エディタで作業して変更するのは非常に困難です。何か問題があると、式全体がエラーになります。
2 番目: Dataflow パイプラインを使用して基本クラスを作成し、派生クラスのブロック デリゲートのみを変更したい。