2014-07-18 4 views
1

나는 다음과 같은 상황이 이렇게 (WPF, C 번호) :이벤트 처리기를 닫으려면 어떻게해야합니까?

1) 나는 카메라와 배경

이 자동으로 라이브 이미지를 표시하는 이벤트 핸들러를 시작하는 초기화를) 이후 나는 싶습니다 예를 들어 사용자가 버튼을 클릭하면이 open 이벤트 핸들러를 다시 닫습니다. 질문 : 어떻게해야합니까?

내 코드 :

Camera.EventFrame -= onFrameEventFocusCam; 

답변

2

는 당신이 시도 했와 함께 코드 라인 "스레드가 대기 상태에서 중단되었습니다" " Dispatcher.Invoke "가 강조 표시됩니다.
+0

그것은 작동하지 않았다 나는 다음과 같은 오류 메시지를 얻을 : :

private void InitCamera(int CamID) { ... Camera.EventFrame += onFrameEventFocusCam; // start event ... } private void onFrameEventFocusCam(object sender, EventArgs e) { ... Dispatcher.Invoke(new Action(() => { // Convert bitmap to WPF-Image var bmp = new Bitmap(bitmap); var hBitmap = bmp.GetHbitmap(); System.Windows.Media.ImageSource wpfBitmap = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap( hBitmap, IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()); image_fokus.Source = wpfBitmap; image_fokus.Stretch = System.Windows.Media.Stretch.UniformToFill; DeleteObject(hBitmap); bitmap.Dispose(); } ... } 
Norick

+0

Dispatcher.HashShutdownStarted가 Dispatcher.Invoke .... 행 앞에 있는지 여부를 확인하려고 시도 할 수 있지만 그 방법은 – CloudyMarble

+0

입니다. "Camera.EventFrame - = onFrameEventFocusCam;"줄 다음에 코드를 변경했습니다. "Dispatcher.HasShutdownStarted"가 while 루프에서 시작되었지만 시작되지 않았는지 확인했습니다. – Norick

관련 문제