📄 global.asax
字号:
<%@ Import namespace="System.Threading" %>
<%@ Import namespace="System.Text" %>
<Script runat="server">
Dim asyncResult As MyAsyncResult
Public Overrides Sub Init()
Dim beginEvent As New BeginEventHandler(AddressOf _Begin)
Dim endEvent As New EndEventHandler(AddressOf _End)
AddOnBeginRequestAsync(beginEvent, endEvent)
End Sub
' Begin Event Handler
Public Function _Begin(source As Object, e As EventArgs, callback As AsyncCallBack, extraData As Object) As IAsyncResult
asyncResult = new MyAsyncResult(Context, callback, extraData)
Return asyncResult
End Function
' End Event Handler
Public Sub _End(ar As IAsyncResult)
End Sub
' Async implementation class
Private Class MyAsyncResult
Implements IAsyncResult
Dim _asyncState As Object
Dim _callback As AsyncCallback
Dim _thread As Thread
Dim _context As HttpContext
Dim _isCompleted As Boolean = false
Public Sub New(context As HttpContext, callback As AsyncCallback, asyncState As Object)
_callback = callback
_asyncState = asyncState
_context = context
_thread = New Thread(New ThreadStart(AddressOf CallStockQuoteWebService))
_thread.Start()
End Sub
Public ReadOnly Property AsyncState As Object Implements IAsyncResult.AsyncState
Get
Return _asyncState
End Get
End Property
Public ReadOnly Property AsyncWaitHandle As WaitHandle Implements IAsyncResult.AsyncWaitHandle
Get
Return Nothing
End Get
End Property
Public ReadOnly Property CompletedSynchronously As Boolean Implements IAsyncResult.CompletedSynchronously
Get
Return False
End Get
End Property
Public ReadOnly Property IsCompleted As Boolean Implements IAsyncResult.IsCompleted
Get
Return _isCompleted
End Get
End Property
Public Sub CallStockQuoteWebService()
Dim quote As New QuoteService()
quote.BeginGetQuotes(New AsyncCallback(AddressOf QuoteCallBack), Nothing)
End Sub
Public Sub QuoteCallBack(ar As IAsyncResult)
Dim quote As New QuoteService()
Dim d() As QuoteDetails
d = quote.EndGetQuotes(ar)
_context.Application("QuoteDetails") = d
_isCompleted = true
_callback(Me)
End Sub
End Class
</Script>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -