2009-06-10 3 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()는 w/o 블로킹을로드합니다.

관련 문제