delphi 运用线程为什么不卡
3个回答
展开全部
用户感觉的卡,一般是指操作界面的卡。
就单线程而言,程序是 计算数据和刷新界面代码交替执行,而不是同时计算数据和刷新界面。
假如有大数据量的计算耗时N秒,那必然导致后续刷新界面的代码延后执行N秒。
在这个N秒里,界面就没有及时刷新,这就是所谓的卡。
多线程技术就是可以将一些操作放在其他线程里进行,假如说刚才的计算放在单独的子线程里,而界面就在主线程里,那样的话,计算和界面刷新代码就分别独立执行,互不影响(这个是windows多线程技术决定的)。所以界面程序能及时刷新界面,从而不卡。
不只是delphi,其他的编程语言用多线程也是一样道理。这个是windows的支持决定的。
就单线程而言,程序是 计算数据和刷新界面代码交替执行,而不是同时计算数据和刷新界面。
假如有大数据量的计算耗时N秒,那必然导致后续刷新界面的代码延后执行N秒。
在这个N秒里,界面就没有及时刷新,这就是所谓的卡。
多线程技术就是可以将一些操作放在其他线程里进行,假如说刚才的计算放在单独的子线程里,而界面就在主线程里,那样的话,计算和界面刷新代码就分别独立执行,互不影响(这个是windows多线程技术决定的)。所以界面程序能及时刷新界面,从而不卡。
不只是delphi,其他的编程语言用多线程也是一样道理。这个是windows的支持决定的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询