Timeout für eine Methode festlegen

ortauq

Aktives Mitglied
Hallo zusammen,

Ich habe folgendes Problem:
Ich nutz eine Methode aus einer Bibliothek mit einem fix festgelegten Timeout.
Wenn dieses Timeout von etwa 20 Sekunden eintrifft und blockiert meine Anwendung für diese Zeit völlig.

Es sieht in etwa so aus:
Code:
private boolean connect()
{
	try
	{
		getSystemNetworkClient().connect(m_Ip);

	} catch (Exception e)
	{

                           //handle exception
		return false;
	}
               return true;
}



main{
    //do smth
    connect();
    //do smth
}


"main" ruft connect auf.
Wenn der Verbindungsaufbau funktioniert, dann ist die Methode connect() innerhalb weniger millisekunden beendet.
Funktioniert der Verbindungsaufbau jedoch nicht, dann muss man das Timeout von etwa 20Sekunden abwarten, bis letztendlich eine Exception geworfen wird.

Gibt es irgendeine Möglichkeit um dieses Problem zu umgehen?
Auslagern in einen Thread und diesen dann abbrechen?
Ich habe keine Ahnung. Kann man eine Methode überhaupt abbrechen?
 
Zuletzt bearbeitet:
Also wenn du die Connection unbedingt benötigst, dann musst du darauf warten. Falls es in weiterer Folge irgendwann verwendet wird kannst du es in einen eigenen Thread auslagern damit dein Programm/UI/... nicht blockiert. Falls du eine UI besitzt, solltest du diese Aufgabe so und so in einen Thread auslagern.
 
Hab das ganze jetzt wirklich in einen Thread ausgelegert.
Danke.

Mit der stop()-Methode hätte ich die ganze Prozedur sogar abbrechen können,
ich lasse den Thread jetzt jedoch einfach auslaufen.
 
Zuletzt bearbeitet:

Zurück
Oben