C#以一种对我的代码的其余部分来说是无阻塞的形式显示图像
我知道这是一个相当广泛的问题,但是有一个类有一个显示图像的方法 并且希望在另一段代码中使用该方法来打开图像,但不要阻止该方法调用 因此,如果我在一段代码中的某个地方有以下代码片段:C#以一种对我的代码的其余部分来说是无阻塞的形式显示图像,c#,system.drawing,C#,System.drawing,我知道这是一个相当广泛的问题,但是有一个类有一个显示图像的方法 并且希望在另一段代码中使用该方法来打开图像,但不要阻止该方法调用 因此,如果我在一段代码中的某个地方有以下代码片段: ImageClass MyImage = new ImageClass(); MyImage.DisplayImage(@"C:\SomeImage.jpg"); Console.Writeline("This is the line after displaying the image"); 我基本上希望图像显示
ImageClass MyImage = new ImageClass();
MyImage.DisplayImage(@"C:\SomeImage.jpg");
Console.Writeline("This is the line after displaying the image");
我基本上希望图像显示,然后继续控制台写线。我是否必须创建一个新的线程或进程来执行此操作?提前感谢。是的,创建一个新线程并调用MyImage.DisplayImage(@“C:\SomeImage.jpg”);
在这种情况下,线程是最好的方法。是的,您需要使用其他线程。我对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");
}));
PictureBox.LoadAsync()将加载不带阻塞的文件