首页 新闻 会员 周边

C# winform 多线程,不同pc延时差异较大

0
[已关闭问题] 关闭于 2017-06-12 10:44

描述:

  程序执行逻辑:

  使用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的刷新时间出现这样的差异?

连山In17的主页 连山In17 | 菜鸟二级 | 园豆:223
提问于:2017-06-01 18:18
< >
分享
所有回答(2)
0

Sleep 1ms之后,并不代表线程可以在1ms结束后可以马上抢占到CPU。

PFly | 园豆:96 (初学一级) | 2017-06-01 22:30

嗯,是的。只是想知道不同PC,抢占到cpu的时间差异为何这么大?怕其它线程的不合理使用导致。

支持(0) 反对(0) 连山In17 | 园豆:223 (菜鸟二级) | 2017-06-02 08:49
0

CPU分片执行问题,性能好的电脑,核多,线程被分配的机会大,核少的电脑,反之,自然有先后快慢了。

有一堆的线程,并非只有你开发的线程需要占用CPU,系统的网络的等等都在排队等着用CPU。

hahanonym | 园豆:1460 (小虾三级) | 2017-06-02 10:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册