質問

HttpClientをWITH私のアプリケーションでは、非同期スレッドを使用して

イム。私はそうのような未来のAPIを使用して電話をかける

mStrResults = (String) rssFuture.get();

HTML文字列を取得するには、このコールの試みは私のコーラブルHttpClientを呼び出し()メソッドから返されます。

私は何がやりたいことの呼び出し()メソッドを実行しながら、getメソッドが長すぎる待機しないことを確実にあります。 rssFuture.getを呼び出したとき、私は(タイムアウトパラメータを渡す必要があります)、またはそれだけでInterruptedExceptionあるのcatchブロックで囲むokです?

また、非同期スレッドが例外:InterruptedExceptionを投げる前に待機となり、デフォルトの時間がありますので、私は、カスタム値を設定することができますか?

役に立ちましたか?

解決

あなたはrssFuture.get()を呼び出すとき、タイムアウトパラメータを渡すと、TimeoutExceptionをキャッチする必要があります。スレッドがあなたのcall Thread.interrupt方法か、今後のOBJでcancel(true)メソッドを呼び出した場合に中断されます。

を実行している場合InterruptedExceptionあるのみ発生します

他のヒント

あなたは将来を使用する必要があります。<のhref = "http://java.sun.com/javase/6/docs/api/java/util/concurrent/Future.html#get(long,%20java.util。 concurrent.TimeUnit)」のrel = "nofollowをnoreferrer">(長いタイムアウト、TimeUnitでユニット)に、とキャッチTimeoutExceptionを取得します。 GET()、それが待機するためのデフォルトのタイムアウトはありません。の永遠

Future.get()を呼び出すスレッドが中断されない限り、

InterruptedExceptionあるがスローされることはありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top