在webforms页面上异步加载文本?

时间:2015-12-07 19:55:34

标签: asp.net vb.net asynchronous webforms async-await

如何点击网页表单页面上的按钮,并观看页面上逐渐显示异步请求的结果?例如,目前所有结果都在回发完成后出现!

Protected Async Sub lbtnSubmitTest_Click(sender As Object, e As EventArgs) Handles lbtnSubmitTest.Click
    Dim counter As Integer = 0
    Dim loopMax As Integer = 50
    Dim requestList As New List(Of Task(Of String))

    While counter < loopMax
        requestList.Add(FetchTokenAsync())
        counter = counter + 1
    End While

    While (requestList.Count > 0)

        Threading.Thread.Sleep(55500)

        Dim finishedTask = Await Task.WhenAny(requestList)
        requestList.Remove(finishedTask)

        Dim message = Await finishedTask
        lblResults.Text = lblResults.Text + message

    End While

    Dim file As System.IO.StreamWriter
    file = My.Computer.FileSystem.OpenTextFileWriter("C:\Temp\APITestResults.txt", True)
    file.WriteLine(lblResults.Text)
    file.Close()

End Sub

1 个答案:

答案 0 :(得分:0)

你正在混淆。

客户端(Web浏览器)向服务器发出请求。该请求可能是本地同步或异步操作,但它与服务器无关。

同样,服务器可能同步或异步执行请求,但与客户端无关。

他们将世界分开。

为了异步通知客户端,您必须使用一些服务器到客户端的通信,如SignalR。

相关问题