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