我有一种情况,我试图从客户端部分调用服务器端部件。
我需要同步这样做。但是,在我的服务器端代码中,我正在调用另一段代码,我想要最多返回一个值,比如10秒。
如果我在10秒内没有响应,我想强制自己的服务器片段将我的结果设置为0,然后返回客户端。
到目前为止,这是我在服务器端代码上的内容:
Public Function GetWebResult(ByVal inputParameter As Object) As WebReturnObject Implements IWebInterface.GetWebResult
Dim result As New WebReturnObject
Dim webItem As WebItem = Nothing
_timer = New Timers.Timer
AddHandler _timer.Elapsed, AddressOf HandleTimerElapsed
_timer.Interval = 10000 '10 Seconds'
_timer.AutoReset = False
_timer.Start()
webItem = GetAWebItem(inputParameter)
_timer.Stop()
result = webItem
Return result
End Function
Private Sub HandleTimerElapsed(ByVal sender as Object, ByVal e As System.Timers.ElapsedEventArgs) Handles _timer.Elapsed
'result.HasTimedOut = True'
'result.Value = 0'
'How do I then get back into GetWebResult?'
End Sub
我意识到这段代码不起作用。问题是我不确定如何在返回到客户端之前回到GetWebResult
设置适当的返回值。
我已经谷歌这个问题了,结果很少。我能找到的最好的资源是Timers.Timer类的MSDN文档,但鉴于我的情况,即使这样也不是非常有用。
如果有人有任何链接,建议等,我将非常感激。