2009-06-10 4 views
1

Je sais que c'est une question plutôt générale, mais que j'ai une classe qui a une méthode pour afficher une image et que vous souhaitez utiliser cette méthode dans un morceau de code différent pour ouvrir l'image, mais ne pas avoir cet appel de méthode être bloquant.C# Affichage d'une image sous une forme non bloquante pour le reste de mon code

Donc, si j'avais l'extrait suivant quelque part dans un morceau de code:

ImageClass MyImage = new ImageClass(); 
MyImage.DisplayImage(@"C:\SomeImage.jpg"); 
Console.Writeline("This is the line after displaying the image"); 

Je serait fondamentalement l'image voulez afficher, puis procéder à la console writeLine. Dois-je créer un nouveau thread ou processus pour le faire? Merci d'avance.

Répondre

3

Oui, vous devrez utiliser des threads supplémentaires. Je ne suis pas aussi familier avec GDI, mais vous devrez peut-être exécuter le code non-UI dans un thread séparé afin que le code de l'interface utilisateur puisse s'exécuter dans le thread principal de l'interface utilisateur. Quelque chose comme le suivant:

ImageClass MyImage = new ImageClass(); 
MyImage.DisplayImage(@"C:\SomeImage.jpg"); 
ThreadPool.QueueUserWorkItem(new WaitCallback(new delegate(object o) { 
    Console.Writeline("This is the line after displaying the image"); 
})); 
0

Oui, en créant un nouveau thread et en appelant MyImage.DisplayImage (@ "C: \ SomeImage.jpg"); dans ce fil est le meilleur moyen de le faire.

0

PictureBox.LoadAsync() se chargera sans blocage.

Questions connexes