Kullanıcı bir düğmeyi tıkladığında main() 'da başlatılan dağıtıcılarımı durdurmak istiyorum.Dağıtıcıdan nasıl çıkabilirim (durdurabilirim)?
private void button_start_Click(object sender, RoutedEventArgs e)
{
...
Camera.EventFrame -= onFrameEventFocusCam; //unsubscribe event
while (!Dispatcher.HasShutdownStarted)
{
// test if Dispatcher started shutdown --> ok, it does but never finishs...!
}
...
}
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();
}));
GC.Collect();
}
Ben onFrameEventFocusCam
durdu iken ben hata mesajı aşağıdaki olsun bu kodu çalıştırdığınızda:
Error-Message: Thread was interrupted from a waiting state.
Ana iş parçacığı dağıtıcısını durdurursanız, uygulama çalışmayı durduracak ... gerçekten istediğiniz nedir? Tam olarak ne yapmaya çalışıyorsun? –
Ana parçacığı durdurmak istemiyorum. Yapmaya çalıştığım, kameranın canlı bir görüntü göstermesini durdurmaktır. Uygulama hala çalışmalıdır. – Norick