0

私はこれを機能させるために本当に一生懸命努力しましたが、運がありませんでした。2つの入力パラメーターを持つ関数を実行するために並列拡張を取得するにはどうすればよいですか?私はより新しいバージョンである3.5フレームワークのReactiveExtensionsを使用しています。

act(または関数ProcessOrder )を実行するための拡張機能を取得する必要がありますが、何を試しても実行できません。

Dim act As New System.Action(Of Int32, Date)(AddressOf ProcessOrder)
act(CInt(RowA("ID")), RunDate)
Tasks.Task.Factory.StartNew(act)

以前は次のことができました。

Dim A(0) As Object
A(0) = CInt(RowA("ID"))
A(1) = RunDate
Tasks.Task.Create(AddressOf ProcessOrder, A)

しかし、それはもうサポートされていません

4

1 に答える 1

1

2つのパラメーターをプロパティとして持ち、それらのプロパティに作用するクラスのメソッドを持つ小さなクラスを作成します。

Public Class ProcessClass
    Private _p1 As Integer
    Private _p2 As Date
    Public Sub New(ByVal p1 As Integer, ByVal p2 As Date)
        Me._p1 = p1
        Me._p2 = p2
    End Sub
    Public Sub ProcessOrder()
        Trace.WriteLine(String.Format("{0}:{1}", _p1, _p2))
    End Sub
End Class

そして、次の方法で呼び出します。

    Dim Obj As New ProcessClass(1, DateTime.Now())
    Dim Act As New System.Action(AddressOf Obj.ProcessOrder)
    System.Threading.Tasks.Task.Factory.StartNew(Act)
于 2009-12-16T21:50:27.187 に答える