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 秒かかります。どういうわけか、リダイレクトが実行を終了する前にデリゲートを強制終了していると思いますが、よくわかりません...
ありがとうございました!!