0

我已经非常努力地让它工作并且没有运气。如何获得并行扩展来运行具有两个输入参数的函数?我正在使用更新的版本,即带有 3.5 框架的 Reactive Extensions。

我需要获得扩展来运行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

创建一个具有两个参数作为属性的小类,并在类上具有一个作用于这些属性的方法。

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 回答