Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#以一种对我的代码的其余部分来说是无阻塞的形式显示图像_C#_System.drawing - Fatal编程技术网

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()将加载不带阻塞的文件