WPF应用程序中的文本输入非常慢

WPF应用程序中的文本输入非常慢,wpf,Wpf,我有一个简单的WPF应用程序,其中我打开一个网络摄像头并将其设置为每秒30帧,如下所示: webcam = new WebCamCapture(); webcam.FrameNumber = ((ulong)(0ul)); webcam.TimeToCapture_milliseconds = FrameNumber; webcam.ImageCaptured += new WebCamCapture.WebCamEventHandler(webcam_ImageCaptured);

我有一个简单的WPF应用程序,其中我打开一个网络摄像头并将其设置为每秒30帧,如下所示:

 webcam = new WebCamCapture();
 webcam.FrameNumber = ((ulong)(0ul));
 webcam.TimeToCapture_milliseconds = FrameNumber;
 webcam.ImageCaptured += new WebCamCapture.WebCamEventHandler(webcam_ImageCaptured);
此应用程序在ImageControl(每秒30帧)中显示相机预览

在图像框下面,我有一个文本框

<TextBox Name="txtMsg" HorizontalAlignment="Left" Width="214" Height="22" Margin="0,260,0,0" TextWrapping="Wrap" VerticalAlignment="Top"></TextBox>

现在,当我尝试输入文本框时,需要几秒钟才能回复。有时我按了几次键,但都没有反应。如果我延迟相机捕获事件(例如每秒1帧),它可以正常工作

我的问题是,如何让UI经常更新,同时在TextBox中获得快速响应


谢谢。

网络摄像头对象正在
UI线程中运行。下面是一个示例,说明如何在单独的
线程中启动它。请小心,因为
ImageCaptured
事件是在后台
线程中触发的,因此您必须调用
调度程序

private void _StartWebCam()
{
    ThreadStart webCamThreadStart = () =>
    {
        webcam = new WebCamCapture();
        webcam.FrameNumber = ((ulong)(0ul));
        webcam.TimeToCapture_milliseconds = FrameNumber;
        webcam.ImageCaptured += new WebCamCapture.WebCamEventHandler(webcam_ImageCaptured);
    };
    Thread threadnameThread = new Thread(webCamThreadStart) { IsBackground = true };
    threadnameThread.Start();
}

private void webcam_ImageCaptured(object sender, EventArgs eventArgs)
{
    System.Windows.Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() =>
    {
        //Set you captured Image to your ImageControl
    }));
}

在应用程序的构造函数中,您在哪里初始化网络摄像头?事件处理程序是什么?那网络摄像头的分辨率呢?这是一种降低分辨率的方法吗?非常感谢您的帮助。输入文本阻止问题现在已解决,但事件网络摄像头\u ImageCaptured现在从未被触发?你能帮我点个灯吗。谢谢。事件网络摄像头现在永远不会被解雇?你能帮我点个灯吗。谢谢没有更多的信息,我帮不了你。发布更多关于
网络摄像头捕获
类的代码。您必须将“网络摄像头拍摄图像”逻辑放在单独的
线程中,然后放在
while循环中。