提问者:小点点

为什么我的代码只是跳出了它的逻辑?[副本]


所以我正在使用这个图书馆,我在网上发现,它应该使它超级容易使用我的网络摄像头与C#,所以我决定给它一个尝试。我正在模仿的项目是使用WPF或WinForms,其中有两种。我决定我想创建一个控制台版本的这个,现在有一些小问题,关于控制和什么不是,但我似乎是所有的控制,我面临的问题是,它走出了它的逻辑,原因不明。

事情应该是这样的。(在WPF中也是如此)

webcam.Start(); -> webcam.Start(0); Starts the webcam here -> webcam_ImageCaptured() -> LoadBitmap() -> webcam_ImageCaptured() -> LoadBitmap() -> webcam_ImageCaptured() and loop through those last two

下面是我的功能(控制台应用程序)

webcam.Start(); -> webcam.Start(0); Starts the webcam here -> and then it steps out of webcam.Start(); and closes.

我不知道为什么它会出现这样的情况,我真的很想知道,一直在反复调试,但我真的无法解开这个谜团。

这里是控制台应用程序的主要部分

class Program
    {
        static WebCam webcam;

        static System.Windows.Controls.Image image = new System.Windows.Controls.Image();
        [STAThread]
        static void Main(string[] args)
        {
            webcam = new WebCam();
            webcam.InitializeWebCam(ref image);

            webcam.Start();
        }
    }

和网络摄像机类https://ghostbin.com/paste/kvvx2

和Helper类https://ghostbin.com/paste/vk8qz

这是WPF应用程序的主要功能

public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
        WebCam webcam;

        private void mainFrm_Loaded(object sender, RoutedEventArgs e)
        {
            webcam = new WebCam();
            webcam.InitializeWebCam(ref imgMain);
        }

        private void btnCapture_Click(object sender, RoutedEventArgs e)
        {
            webcam.Start();
        }
    }

这里是我找到所有内容的原始帖子https://sites.google.com/site/webcamlibrarydotnet/wpf and-csharp-sample-code-and-download


共1个答案

匿名用户

在console application中,在末尾添加console.readline(),这样app就保持运行状态。

 static void Main(string[] args)
         {
             webcam = new WebCam();
             webcam.InitializeWebCam(ref image);

             webcam.Start();
             Console.ReadLine();
         }

然后只需确保WebCAM_ImageCaptured-Events正在触发。即使Start-method立即返回,它也可能被设计为不会阻塞调用线程。