2

我有一个 vb .NET windows 应用程序。我在其中调用外部函数并接收响应。

大多数时候它都在工作。但是在某些客户端机器中,响应没有在适当的时间出现。这需要更多时间。我的问题是如何设置超时,例如 30 秒,这样我才能处理未到来的响应并继续下一步。

我的部分代码如下所示。

' my response class
Dim MyResponse as new clsResponse 

' calling outside function which returns response.
MyResponse = Obj.SendRequest(MyRequest) 

'' Some code Here
4

1 回答 1

2

我想你可以使用Task.Wait:

Task.Start/Wait 和 Async/Await 有什么区别?

并传入等待参数。

http://msdn.microsoft.com/en-us/library/dd235606.aspx

如果任务在所需时间完成,则返回 true。

另请参阅:该任务仍将在后台运行,尽管您的功能将继续

如果超时没有完成任务,Task.Wait(int) 会停止任务吗?

Task t = new Task(() =>
        {
            MyResponse = Obj.SendRequest(MyRequest);
        });
t.Start();
bool finished = t.Wait(3000);

我认为在 VB .NET 中将是:

Dim t as Task = new Task( Sub() MyResponse = Obj.SendRequest(MyRequest) )
t.Start()
Dim finished as Boolean = t.Wait(3000)
于 2013-10-27T10:35:55.853 回答