描述:
程序执行逻辑:
使用DataTable 绑定到Gridcontrol.DataSource; gridControl1.DataSource = configDt;
更新数据源数据:dr = configDt.Rows[i]; dr[5] = DBNull.Value;
线程sleep(1);
问题:在性能较好的PC上 执行逻辑耗时1ms,但是在性能稍差的PC上 dr[5]=DBNull.Value耗时10ms左右,sleep(1)耗时也在10ms左右;
问题查找过程,
解除绑定
用configDt的复制DT绑定gridcontrol控件以后,dr[5]=DBNull.Value的耗时消除。
将sleep(1),替换为ManualResetEvent对象的WaitOne(1),耗时依然为10ms左右。
请问有哪些因素可能导致延时和gridcontrol的刷新时间出现这样的差异?
Sleep 1ms之后,并不代表线程可以在1ms结束后可以马上抢占到CPU。
嗯,是的。只是想知道不同PC,抢占到cpu的时间差异为何这么大?怕其它线程的不合理使用导致。
CPU分片执行问题,性能好的电脑,核多,线程被分配的机会大,核少的电脑,反之,自然有先后快慢了。
有一堆的线程,并非只有你开发的线程需要占用CPU,系统的网络的等等都在排队等着用CPU。