Application core 3.1 WPF/WinFom impossible à arrêter ?

Voici un petit problème qui peut vous arrivez si vous utiliser .net core3.1 pour réaliser une application desktop :

Après fermeture de votre formulaire principale, ou de votre dernier formulaire, votre application ne s’arrête pas. Elle n’a plus d’interfaces visibles, mais elle continue à s’exister et reste visible dans le gestionnaire de tâches.

D'où vient le problème ?

Le problème et la solution sont très simples. Vous avez certainement utilisé Microsoft.Extensions.Hosting pour gérer votre injection de dépendeuses. Je vous rassure tout de suite, le problème n’est pas dans la librairie, mais dans son usage.

La solution

À la fermeture de l’application, il faut penser à disposer son hôte.

Ce qui peut donner une méthode similaire à ceci :

/// <summary>
/// Stop the host
/// </summary>
/// <returns></returns>
public async Task StopAsync()
{
   await _host.StopAsync();
   _host.Dispose();
}

_host étant de type IHost.

Moralité

Lisez la documentation, avant de crier au loup.

Jérémy Jeanson

Comments

You have to be logged in to comment this post.