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 に答える