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 回答