0

ASP.NET にページがあり、そこからページの読み込みからサーバー側の関数を非同期的に呼び出し、その後別のページにリダイレクトする必要があります。私の呼び出しは次のとおりです。

公開クラス Page1

Private Delegate Sub AsyncCallerDelegate(ByVal par1 As Integer, ByVal par2 As Integer)

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Me.DoSomeStuff()
    Me.AsyncCall()
    Response.Redirect("anotherPage.aspx")
End Sub

Private Sub DoSomeStuff() 'いくつかのことを行います... End Sub

Private Sub AsyncCall()
    Try
        Dim caller As New AsyncCallerDelegate(AddressOf AsyncMethod)
        caller.BeginInvoke(par1, par2, Nothing, Nothing)
    Catch ex As Exception
        Me.LogError("Error calling asynchronous method AsyncMethod.")
    End Try
End Sub

Public Sub AsyncMethod(ByVal par1 As Integer, ByVal par2 As Integer)
    Class1.DoSomeOtherStuff(par1, par2)
End Sub

クラス終了

Class1.DoSomeOtherStuff のコードは実行されず、エラーも記録されません。ただし、リダイレクトは行われ、DoSomeStuff() メソッドも実行されます。非同期で呼び出しているメソッド (Class1.DoSomeOtherStuff) の実行には 50 秒かかります。どういうわけか、リダイレクトが実行を終了する前にデリゲートを強制終了していると思いますが、よくわかりません...

ありがとうございました!!

4

0 に答える 0