1

これはかなり幅広い質問であることは知っていますが、画像を表示するメソッドを持つクラスがあり、そのメソッドを別のコードで使用して画像を開きたいが、そのメソッド呼び出しをブロックしないでください。

したがって、コードのどこかに次のスニペットがあるとします。

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

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

4

3 に答える 3

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");
}));
于 2009-06-10T01:35:05.250 に答える
0

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

于 2009-06-10T01:33:47.887 に答える
0

PictureBox.LoadAsync() はブロックなしでロードされます。

于 2009-06-10T01:35:09.150 に答える