1

外部Webサービスからの検索機能が1つあります。検索は、1 日分のデータを検索してレコード数を返すのに約 3 秒かかります。1 か月分のデータを継続的に検索するように要求されます。

そのため、通常の検索を行うのは賢明ではありません (約 90 秒かかります)。

開始日と終了日をパラメーターとして検索機能を実行し、レコード数を返したいと思います。この関数を for ループで呼び出し (日付範囲を変更)、終了後にレコードを合計します。

最良の方法は、タスクまたはスレッドを実行することだと思います。しかし、私はこれをうまく達成できませんでした。

そのため、90 秒ではなく 3 秒かかります。

そのための助けは、はるかに適切です。

4

1 に答える 1

0

私があなたの質問を正しく読んでいるなら、これはあなたを始めるはずです:

Module modSum

Private mSum As Integer
Public Property Sum() As Integer
    Get
        Return mSum
    End Get
    Set(ByVal value As Integer)
        mSum = value
    End Set
End Property

Public Sub DoSum()

    For i = 1 To 30

        Dim dateToQuery As Date
        dateToQuery = Date.Parse("2013-02-" & i.ToString)


        Dim sc As New WebserviceCall
        sc.startdate = "2013-01-01"
        sc.enddate = "2013-01-31"

        Dim th As New Threading.Thread(AddressOf sc.DoServiceCall)
        th.Start()

    Next

End Sub

Public Class WebserviceCall

    Public startdate As Date
    Public enddate As Date

    Public Sub DoServiceCall()

        Dim ws As New YourService.Service
        Dim result As Integer = ws.GetSum(startdate, enddate)

        mSum += result

    End Sub

End Class

End Module
于 2013-02-03T22:20:45.630 に答える