Laden...

Asynchrones Ausführen mit Timeout

Erstellt von Spontifixus vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.539 Views
Spontifixus Themenstarter:in
360 Beiträge seit 2005
vor 15 Jahren
Asynchrones Ausführen mit Timeout

Moin zusammen,

entweder ich bin blind - oder aber das gibts wirklich nicht: Gibt es eine Framwork-interne Möglichkeit Methoden asynchron aufzurufen und nach einem Timeout abzubrechen oder muss ich das selber implementieren?

Gruß,
Markus 😃

2.891 Beiträge seit 2004
vor 15 Jahren

Hallo Spontifixus,

irgendwie wird mir der Zusammenhang von Asynchronität und Abbrechen nach Timeout noch nicht ganz klar... Was willst du abbrechen? Oder willst du "erstmal" synchron/blockierend aufrufen wenn nach einem bestimmten Timeout nichts zurückkam quasi asynchron weitermachen?

Gruß,
dN!3L

479 Beiträge seit 2008
vor 15 Jahren

Stichwort: Threading

mfg.
markus111

[Follow me on Twitter](http://twitter.com/blendingsky)
Spontifixus Themenstarter:in
360 Beiträge seit 2005
vor 15 Jahren

Hallo dN!3L,

ich verwende in meiner Software eine Drittanbieterkomponente, bei der es eine Methode gibt, die die unliebsame Angewohnheit hat, nach Aufruf nicht zurückzukehren.

Deswegen möchte ich diese Methode asynchron aufrufen, damit der Haupt-Thread nicht blockiert wenn diese Methode hängt. Trotzdem muss ich diese Aktion über einen Timeout absichern, damit ich nicht mit jedem hängengebliebenen Methodenaufruf eine "Thread-Leiche" herumliegen habe...

Hallo markus111,

soweit war ich auch schon, danke... 😃

Gruß,
Markus 😃

PS: @dN!3L: Gerade deine Links gesehen... die guck ich mir erstmal an...

479 Beiträge seit 2008
vor 15 Jahren

Hallo markus111,

soweit war ich auch schon, danke... 😃

Achso. Wenn ich das richtig verstanden habe, brauchst du "nur" einen neuen Thread zu starten, und ich mit einem Timer nach bestimmter Zeit mit Thread.Abort() abzubrechen.

mfg.
Markus111

[Follow me on Twitter](http://twitter.com/blendingsky)
2.891 Beiträge seit 2004
vor 15 Jahren

Deswegen möchte ich diese Methode asynchron aufrufen, damit der Haupt-Thread nicht blockiert wenn diese Methode hängt. Trotzdem muss ich diese Aktion über einen Timeout absichern, damit ich nicht mit jedem hängengebliebenen Methodenaufruf eine "Thread-Leiche" herumliegen habe...

Hm, so herum...
Spontan würde ich den Aufruf der Methode in einen Thread auslagern (=Asynchronität) und dann darin z.B. die Komponenten Timeout Manager bzw. Timeout-Wächter verwenden (=Timeout).

Gruß
dN!3L

Spontifixus Themenstarter:in
360 Beiträge seit 2005
vor 15 Jahren

Ja - so in der Art habe ich das auch bisher realisiert: Methodenaufruf in einen Thread ausgelagert, dessen Laufzeit ich mit einem Timer überwache.

Allerdings war meine Frage ob das auch mit .NET-Bordmitteln geht - ich also z.B. dem asynchronen Aufruf einen Timeout mitgeben kann, ohne da selber so einer Wächter implementieren zu müssen...

Gruß,
Markus 😃

3.971 Beiträge seit 2006
vor 15 Jahren

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...

Spontifixus Themenstarter:in
360 Beiträge seit 2005
vor 15 Jahren

Hallo kleines_eichhörnchen,

vielen Dank für den Hinweis, ich habe im entsprechenden Thread noch eine Frage dazu gestellt.

Gruß,
Markus 😃