Image 객체를 EventArgs로 공유해야 할 때 어떻게 해야 할까요?

Image를 작업 스레드에서 그리고 완료가 되면 이벤트를 발생시켜 Args에 넣고 필요한 곳에서 사용하는데,
동시 이미지 읽기가 불가능 하다보니 이미지 읽기 문제로 가끔씩 예외가 발생하네요
Winform에서 위처럼 사용하려면 어떻게 해야할까요?

현재 이벤트를 어떻게 발생 시키고 있는지 사용하시는 코드를 함께 올려주시면 답변에 도움일 될 것 같네요:blush:

2 Likes

///
Class AEventArgs : EventArgs
{
// … 생성자 등
Image Image;
}

public delegate void AEventHandler(obj s, AEventArgs e);
public event AEventHandler? AEvent;

Raise~(Image image /생성된 이미지가 들어가는 인자/)
{
AEvent?.Invoke(this, new(image));
}
///

작업 스레드 내부에서 Raise 함수를 호출하여 사용하는 식 입니다…

동시 읽기가 불가능하다고 하셨는데 구체적으로 어떤 문제가 발생하고 있을까요?

Raise~를 호출한 함수에서 Image를 Dispose할 수도 있고 여러가지 경우의 수가 많아 조금 더 구체적인 코드면 좋을 것 같네요.

1 Like