を呼び出すと、VB.NETを使用してASP.NET 1.1で書かれたWebサービスのためのサンプルコードです:更新UI ASP.NETコントロール - 非同期(コールバックアプローチ) - ここではWebサービスメソッド
<System.Web.Services.WebService(Namespace := "http://tempuri.org/WebService_Simple/Service1")> _
Public Class Service1
Inherits System.Web.Services.WebService
<WebMethod()> _
Public Function Add(ByVal A As Integer, ByVal B As Integer) As Integer
System.Threading.Thread.Sleep(2000)
Return A + B
End Function
End Class
ここでは、クライアントコードは次のとおりです。
Public Class WebForm1
Inherits System.Web.UI.Page
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim proxy As New Service1
Dim ac As New AsyncCallback(AddressOf MyCallback)
Dim ar As IAsyncResult = proxy.BeginAdd(10, 20, ac, proxy)
System.Threading.Thread.Sleep(1000)
End Sub
Public Sub MyCallback(ByVal ar As IAsyncResult)
Dim proxy As Service1 = CType(ar.AsyncState, Service1)
Dim result As Integer = proxy.EndAdd(ar)
Label1.Text = "Result = " & result.ToString()
End Sub
End Class
私はVisual Studio.NET 2003(ASP.NET 1.1/VB.NET)を使用しています。私は "結果"変数に正しい値を得ています。しかし、UI要素(Label1)は更新されません。私はその理由を知っている。 UI - MAIN - スレッドはCALLBACK - WORKER - スレッドを使用しているものとは異なるためです。 Visual Studio.NET 2003でVB.NETを使用してUI(Label1)コントロールを更新するようにサンプルコードを提供できますか?
ありがとうございました