2009-06-10 1 views
1

これはかなり広い質問ですが、画像を表示するメソッドがある のクラスがあり、そのメソッドを使用したいと思います別のコードで画像を開くことはできますが、そのメソッド呼び出しをブロックすることはできません。C#コードの残りの部分をノンブロッキングする形式で画像を表示する

私はどこかにコードの一部で次のスニペット持っていたのであれば:

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

を私は基本的に画像を表示し、コンソールWriteLineメソッドへ進みたいと思います。これを行うには、新しいスレッドまたはプロセスを作成する必要がありますか?前もって感謝します。

答えて

3

はい、追加のスレッドを使用する必要があります。私はGDIに精通していませんが、UIコードがメインのUIスレッドで実行できるように、別のスレッドで非UIコードを実行する必要があります。次のようなものがあります。

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

はい、新しいスレッドを作成し、MyImage.DisplayImage(@ "C:\ SomeImage.jpg")を呼び出します。そのスレッドの がこれを実行する最も良い方法です。

0

PictureBox.LoadAsync()はブロックされずに読み込まれます。

関連する問題