100分!使用pictureBox显示录像很卡的问题 四台摄像机采集图像,使用4个pictureBox.BeginInvoke开始线程,四个pictureBox都在一个线程里,所以特别卡,有没有什么方法可以解决这个问题? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 4 个BeginInvoke 已经是4个线程了。你里面处理应该适当的sleep一下。让它们对CPU的请求不要竞争的太激烈。 问一下三楼fangxinggood:,我用Thread.CurrentThread.GetHashCode()查了一下,他们都在Control所在的线程上,不在线程池里面这是为什么呀?问一下二楼ssp2009:平衡程序指的是什么呀?我是新手,刚开始弄C#一个月 我以为你是调用delegate的BeginInvoke你说的对,如果是Control.BeginInvoke的只是在UI线程上异步。Invoke和BeginInvoke的委托方法是在主线程,即UI线程上执行的。也就是说如果你的委托方法用来取花费时间长的数据,然后更新界面什么的,千万别在UI线程上调用Control.Invoke和Control.BeginInvoke,因为这些是依然阻塞UI线程的,造成界面的假死。不知道你现在怎么取得图片的。把取得图片放在子线程里,然后最后一部再更新Control。比如:Thread thread = new Thread(this.UpdatePicture);private void UpdatePicture(){ // 取得图像(这步可能需要很耗时) Action update = (()=>{this.pictureBox1.Image = image}; this.pictureBox1.Invoke(update, null);} 回复fangxinggood:正在试您说的方法,如果好使的话,100分全都给您了 即时释放内存 试试using(OOXX==OOXX){ OOXX;} 图片识别的一个应用 c# 回调函数一般在什么时候用 winform 滚动条问题 数组做参数,为什么不对 在线等待,怎么把字节数组存入到sqlserver2000数据库中去!!! 如何动态引用dll 关于数据库的一个问题~~` 对文件的操作 datagrid的allowsorting属性问题 程序运行时内存占有率问题 关于C#注释文档,以及数组的疑问 关于三菱PLC内部编程地址的计算,会的来帮忙看下,是怎么计算得出的
问一下二楼ssp2009:平衡程序指的是什么呀?我是新手,刚开始弄C#一个月
你说的对,如果是Control.BeginInvoke的只是在UI线程上异步。Invoke和BeginInvoke的委托方法是在主线程,即UI线程上执行的。也就是说如果你的委托方法用来取花费时间长的数据,然后更新界面什么的,千万别在UI线程上调用Control.Invoke和Control.BeginInvoke,因为这些是依然阻塞UI线程的,造成界面的假死。不知道你现在怎么取得图片的。把取得图片放在子线程里,然后最后一部再更新Control。
比如:Thread thread = new Thread(this.UpdatePicture);private void UpdatePicture()
{
// 取得图像(这步可能需要很耗时)
Action update = (()=>{this.pictureBox1.Image = image};
this.pictureBox1.Invoke(update, null);
}
using(OOXX==OOXX)
{
OOXX;
}