while peek是什么材料怎么改

一个事件中while循环,能在另一个事件中改变循环条件,跳出循环么
[问题点数:20分,结帖人hitwhzhongqiu]
本版专家分:0
结帖率 100%
CSDN今日推荐
本版专家分:2564
本版专家分:4997
本版专家分:7981
2014年10月 VC/MFC大版内专家分月排行榜第二2014年9月 VC/MFC大版内专家分月排行榜第二
本版专家分:7981
2014年10月 VC/MFC大版内专家分月排行榜第二2014年9月 VC/MFC大版内专家分月排行榜第二
本版专家分:0
匿名用户不能发表回复!|
其他相关推荐peek_百度百科
清除历史记录关闭
声明:百科词条人人可编辑,词条创建和修改均免费,绝不存在官方及代理商付费代编,请勿上当受骗。
聚醚醚酮,英文名称polyetheretherketone(简称PEEK),它是分子主链中含有链节的线性芳香族高分子化合物。其构成单位为氧-对亚苯基-氧-羰-对亚苯基,是半结晶性、热塑性塑料。产品名称:聚醚醚酮(PEEK)树脂是一种性能优异的,与其他特种工程塑料相比具有更多显著优势,耐正高温260度、机械性能优异、自润滑性好、耐化学品腐蚀、阻燃、耐剥离性、耐磨性、不耐强硝酸、浓硫酸、抗辐射、超强的机械性能可用于高端的机械、核工程和航空等科技。
peek聚醚醚酮
聚醚醚酮是指大分子主链由芳基、酮键和醚键组成的线性聚合物,它是目前可大批量生产的惟一的聚芳醚酮品种,英文名称为polyetherether ketone,简称PEEK,分子结构式为
聚醚醚酮分子式结构
聚醚醚酮具有热固性塑料的耐热性、化学稳定性和热塑性塑料的成型加工性。聚醚醚酮还具有优异的耐热性。其热变形温度为160℃,当用20%~30%的玻璃纤维增强时,热变形温度可提高到280~300℃。聚醚醚酮的热稳定性良好,在空气中420℃。2h情况下失重仅为2%,500℃时为2.5%,500℃时才产生显著的热失重。聚醚醚酮的长期使用温度约为200℃,在此温度下,仍可保持较高的拉伸强度和弯曲模量,它还是一种非常坚固的材料,有优异的长期耐蠕变性和耐疲劳性能。
聚醚醚酮的电绝缘性能非常优异,体积电阻率约为10~10Ω·cm。它在高频范围内仍具有较小的介电常数和介电损耗。例如,在10Hz时,在室它的介电常数仅为3.2,介电损耗仅为0.02。
聚醚醚酮的化学稳定性也非常好,除浓硫酸外,几乎对任何化学试剂都非常稳定,即使在较高的温度下,仍能保持良好的化学稳定性。另外,它还具有极佳的耐热水性和耐蒸汽性。在200~250 ℃的蒸汽中可以长时间使用。
聚醚醚酮有很好的阻燃性,在通常的环境下很难燃烧,即使是燃烧,发烟量及有害气体的释放量也是很低的,甚至低于聚四氟乙烯等低发烟量的聚合物。此外.它还具有优良的耐辐射性。它对α射线、β射线、γ射线的抵抗能力是目前高分子材料中最好的。用它包覆的电线制品可耐1.1×10Gy的γ射线。
聚醚醚酮在熔点以上有良好的熔融流动性和热稳定性。因而具有热塑性塑料的典型成型加工性能,因此可用注塑、挤出、吹塑、层压等成型方法,还可纺丝、制膜。虽然聚醚醚酮熔融加工温度范围为360~400℃,但是由于它的热分解温度在520 ℃以上,因而它仍具有很宽的加工温度范围。
尽管聚醚醚酮的发展历史仅为短短的二十几年,但是由于它具有突出的耐热性、耐化学腐蚀性、耐辐射性以及高强度、易加工性,使得它目前已在核工业、化学工业、电子电器、机械仪表、汽车工业和宇航领域中得到了广泛的应用。尤其是作为耐热性能优异的热塑性树脂,它可用作高性能复合材料的基体材料。
纯料的性能难以满足不同行业领域的不同需求,故在特种工作环境需要对PEEK进行改性,其主要手段有共混改性、共聚改性、复合增强改性、填实改性、纳米改性和表面改性等技术。通过改性可以增加PEEK的某方面性能,如耐磨性、冲击强度等,从而扩展了PEEK的应用范围,降低了材料的使用成本,改良了PEEK的加工性能。
PEEK常用改性
波纤改性:10%波纤改性、20%波纤改性、30%波纤改性
碳纤改性:10%碳纤改性、20%碳纤改性、30%碳纤改性
PEEK 牌号:
特点和用途
注塑、挤塑等级,20%碳纤维增强,耐高温,刚性,强度优,用于工程制品
30%碳纤维增强,耐高温好,刚性和强度好,适合机械、电气、汽车、化工等耐化学性好的工程制品
注塑、挤塑等级,40%碳纤维增强,高刚性,耐高温,用于工程部件
涂层级,低粘度,粉料,未增强,结晶型,UL94V-0,使用温度160℃以上,适合金属涂层
挤塑和涂层级。中粘度,混合物粒料,未增强,结晶型,UL94V-0,使用温度160℃以上。适合单丝和一般通用挤压工程部件,特别是金属线材涂层
挤塑和涂层级。中粘度,粉料,未增强,结晶型,UL94V-0,使用温度160℃以上,适合单丝和一般通用挤压工程部件,如金属线材涂层
注塑增强等级。混合物粒料,30%碳纤维增强,有很好的刚性和承载性能,使用温度250℃以上,最高能达315℃,UL94V-0,韧性好,强度高,耐化学腐蚀性好,成型周期快。
注塑、挤塑等级,30%碳纤维增强,高刚性,耐高温,润滑性好,用作工程部件
注塑级,非增强,高粘度,混合物粒料,结晶型,UL94V-0,使用温度在160℃以上,强度高
注塑级,粉料,特点和用途同450G
增强注塑级。混合物粒料,20%玻璃纤维增强,耐热性和弯曲模量比450G牌号高,强度和刚度高,使用
温度在250℃,为UL94V-0。适合机械、化工、电气等工程制品,也用于挤塑制品。
新产品,增强注塑级。玻璃纤维和碳纤维增强,混合物粒料,流动性好,耐热性很好,连续使用温度250℃,最高达300℃以上。适合机械、电气等高质量薄壁工程制品
新产品,注塑级。混合粒料,流动性好,耐热性好,使用温度250℃,力学性能稳定。
新产品,注塑增强等级。30%玻纤增强,混合料粒。
新产品,各种性能好,适合重载应用的工程制品,可代替更多的传统金属
新产品,增强注塑级,10%玻璃纤维,强度和刚性好,耐热性高,为混合物粒料
新产品,注塑级。混合物粒料。适合轴承等工程制品
注塑增强级,30%碳纤维增强,耐高温,刚性和强度好,适合机械、电气、化工、汽车等润滑性好
注塑增强级,30%短切纤维,特点和用途同LC1006
注塑增强级,45%短切纤维和PTFE,耐高温,刚性和强度好,适合机械、电气、汽车、化工等制品
注塑增强级,20%硅树脂改性,耐高温,刚性和强度好,适合机械、电气、汽车、化工等润滑性制品
注塑增强级,30%短切玻璃纤维增强,耐高温,刚性和强度好。适合机械、电气、汽车、化工制品
注塑增强级,30%碳纤维,特点和用途同上PDX79737
注塑增强级,15%碳纤维,特点和用途同上PDX79737
注塑增强级,45%碳纤维和PTFE填充增强,其他同PDX79737
注塑增强级,20%PTFE填充,耐高温,刚性和强度好,适合机械,电气、化工、汽车等化学偶联的工程制品
〉20%短玻纤填充,耐高温,刚性和强度好,适合机械,电气、化工、汽车等水解稳定性的工程制品
〉15%短玻纤填充,耐高温,刚性和强度好,适合机械,电气、化工、汽车等抗拉伸性的工程制品
注塑增强级,40%铝屑填充增强,耐高温,刚性和强度好,适合机械,电气、汽车、化工等润滑性好的制品
注塑增强级,30%碳纤维增强,耐高温,刚性和强度好,适合机械,电气、汽车、化工等抗静电制品
30%玻纤增强PEEK
PEEK产品特性
  PEEK(聚醚醚酮)塑胶原料是芳香族结晶型热塑性高分子材料,其熔点为334℃,具有机械强度高、耐高温、耐冲击、阻燃、耐酸碱、耐水解、耐磨、耐疲劳、耐辐照及良好的电性能。  耐高温  PEEK树脂具有较高的熔点(334℃)和玻璃化转变温度(1 43℃),连续使用温度为260℃,其30%GF或CF增强牌号的负载热变型温度高达316℃。  机械特性  PEEK(聚醚醚酮)塑胶原料树脂具有良好的韧性和刚性,它具备与合金材料媲美的对交变应力的优良耐疲劳性。  阻燃性  材料的易燃性即从氧、氮混合剂获得高能量点燃后维持燃烧的能力。测量易燃性的公认标准为UL94,方法是先点燃预定形状的垂直样品,然后测得该材料自动熄灭所用的时间。PEEK检测结果为V-0,这是阻燃性的最优等级。  稳定性  PEEK塑胶原料具有优越的尺寸稳定特性,这对某些应用来说有的很重要。温度、湿度等环境条件的变化对PEEK零件的尺寸影响不大,可以满足对尺寸精度要求比较高工况下的使用要求。  1.PEEK塑胶原料注塑成型收缩率小,这对控制PEEK注塑零件的尺寸公差范围非常有好处,使PEEK零件的尺寸精度比通用塑料高很多;  2. 热膨胀系数小,随着温度的变化(可由环境温度的变化或运转过程中摩擦生热引起),PEEK零件的尺寸变化很小;  3. 尺寸稳定性好,塑料的尺寸稳定性是指工程塑料制品在使用或存放过程中尺寸稳定的性能,这种尺寸的变化主要是因为聚合物分子的活化能提高后,使链段有某种程度的卷曲导致的;  4.PEEK耐热水解特性突出,在高温高湿环境下吸水性很低,不会出现类似尼龙等通用塑料因吸水而使尺寸发生明显变化的情况;  绝缘稳定性  PEEK(聚醚醚酮)塑胶原料树脂具有良好的电绝缘性能,并保持到很高的温度范围。其介电损耗在高频情况下也很小  耐辐照性和耐剥离性  PEEK(聚醚醚酮)塑胶原料树脂有良好的耐辐照性和耐剥离性,因此可 以用来制成特殊用途的电磁线.  目前在消毒柜和无线验证系统上,有时会采用peek,相当不锈钢的功效。
peek产品特性
耐辐照性、绝缘性稳定、耐水解,抗压,耐腐蚀,其复合材料制作成的机械零件具有自润滑效果。
.耐温、热稳定性佳、超高耐热(较PPS优良)、HDT在315摄氏度以上,UL连续使用温度为260摄氏度。
1:机械特性PEEK是韧性和刚性兼备并取得平衡的塑料。特别是它对交变应力的优良耐疲劳是所有塑料中最出众的,可与合金材料媲美。
2:自润滑性PEEK在所有塑料中具有出众的滑动特性,适合于严格要求低摩擦系数和耐摩耗用途使用。特别是碳纤、石墨各占一定比例混合改性的PEEK自润滑性能更佳。
3:耐化学药品性(耐腐蚀性)PEEK具有优异的耐化学药品性.在通常的化学药品中,能溶解或者破坏它的只有浓硫酸,它的耐腐蚀性与镍钢相近。
4:阻燃性PEEK是非常稳定的聚合物,1.45mm厚的样品,不加任何阻燃剂就可达到最高阻燃标准。
5:耐剥离性PEEK的耐剥离性很好,因此可制成包覆很薄的 或电磁线,并可在苛刻条件下使用。
6:耐疲劳性PEEK在所有树脂中具有最好的耐疲劳性。
7:耐辐照性耐高辐照的能力很强,超过了通用树脂中耐辐照性最好的聚苯乙烯。可以作成γ辐照剂量达1100Mrad时仍能保持良好的绝缘能力的高性能 。
8:耐水解性PEEK及其复合材料不受水和高压水蒸气的化学影响,用这种材料作成的制品在高温高压水中连续使用仍可保持优异特性。
PEEK产品特性  PEEK(聚醚醚酮)塑胶原料是芳香族结晶型热塑性高分子材料,其熔点为334℃,具有机械强度高、耐高温、耐冲击、阻燃、耐酸碱、耐水解、耐磨、耐疲劳、耐辐照及良好的电性能。  耐高温  PEEK树脂具有较高的熔点(358℃)和玻璃化转变温度(1 43℃),连续使用温度为260℃,其30%GF或CF增强牌号的负载热变型温度高达316℃。
PEEK(聚醚醚酮)塑胶原料树脂具有良好的韧性和刚性,它具备与合金材料媲美的对交变应力的优良耐疲劳性。
测量由塑料燃烧所产生烟尘的标准为ASTM E662,此标准是采用美国国家标准局(NBS)的烟尘实验室,以比光学密度为单位,测量由标准形状样品燃烧生产的烟尘的可见光暗淡程度,该测试可以在持续燃烧(有火焰)或燃烧中断(无火焰)的情况下进行,在塑料中PEEK具有最低发烟性。
毒气逸散性
PEEK与很多有机材料相同,在高温分解时,PEEK主要产生二氧化碳和一氧化碳,使用英国航行器测试标准BSS 7239可以检测到极低浓度的毒气逸散,这种检测过程需要在1立方米的空间内完全燃烧100克样品,然后分析其中所产生的毒气,毒性指数定义为在正常情况下产生的毒气浓度综合与30分钟可以使人致命的剂量之比,PEEK450G的指数为0.22,且没有检测到酸性气体。
  PEEK塑胶原料具有优越的尺寸稳定特性,这对某些应用来说有的很重要。温度、湿度等环境条件的变化对PEEK零件的尺寸影响不大,可以满足对尺寸精度要求比较高工况下的使用要求。  1.PEEK塑胶原料注塑成型收缩率小,这对控制PEEK注塑零件的尺寸公差范围非常有好处,使PEEK零件的尺寸精度比通用塑料高很多;  2. 热膨胀系数小,随着温度的变化(可由环境温度的变化或运转过程中摩擦生热引起),PEEK零件的尺寸变化很小;  3.PEEK耐热水解特性突出,在高温高湿环境下吸水性很低,不会出现类似尼龙等通用塑料因吸水而使尺寸发生明显变化的情况;
绝缘稳定性
PEEK(聚醚醚酮)塑胶原料树脂具有良好的电绝缘性能,并保持到很高的温度范围。其介电损耗在高频情况下也很小。
耐辐照性和耐剥离性
PEEK(聚醚醚酮)塑胶原料树脂有良好的耐辐照性和耐剥离性,因此可 以用来制成特殊用途的电磁线。现在在消毒柜和无线验证系统上,有时会采用peek,相当不锈钢的功效。
PEEK树脂是理想的电绝缘体,在高温、高压和高湿度等恶劣的工作条件下,仍能保持良好的电绝缘性能,因此电子信息领域逐渐成为PEEK树脂第二大应用领域。可用于制造输送超纯水的管道、阀门和泵。
PEEK树脂还可在134℃下经受多达3000次的循环高压灭菌,这一特性使其可用于生产灭菌要求高、需反复使用的手术和牙科设备。PEEK不仅具有质量轻、无毒、耐腐蚀等优点,还是目前与人体骨骼最接近的材料,可与肌体有机结合,所以用PEEK树脂代替金属制造人体骨骼是其在医疗领域的又一重要应用。国内PEEK材料生产发展很迅速。
PEEK树脂是20世纪70年代末由英国原ICI公司开发的,自问世以来,一直被作为一种重要的战略性国防军工材料,许多国家均限制出口。吉林省中研高性能工程塑料股份有限公司是目前全球范围内第二家采用5000升反应釜进行PEEK生产的企业,是集PEEK研发、生产、销售为一体的现代化高端的科技企业。打破了该项技术的国际垄断。
聚醚醚酮(PEEK)作为一种新型的半晶态芳香族塑性工程塑料,具有极其出色的物理、力学性能,在许多特殊领域可以替代金属、陶瓷等传统材料,在减轻质量,提高性能方面贡献突出,成为当今最热门的高性能工程塑料之一。PEEK耐高温热性能十分突出,可在250℃下长期使用,瞬间使用温度可达315℃;其刚性大,尺寸稳定性,线胀系数较小,接近于金属铝材料;PEEK化学稳定性好,对酸、碱及几乎所有的有机溶剂都有很强的抗腐蚀能力,同时具有阻燃、抗辐射等性能;PEEK耐滑动磨损和微动磨损耗的性能优异,尤其是能在250℃下保持高耐磨性和低摩擦因数;此外,PEEK易于挤出和注射击成型。凭借些优异的综合性能,PEEK在航空航天、机械、石油、化工、核电、轨道交通等领域有广泛的应用即使在200度蒸气中,其拉抻强度、质量及外观也不发生显著变化,可长期使用。在很高的交变应力的作用下具有很好的抗疲劳性,并且有长期的耐负荷性,耐磨性好。有极好的阻燃性,有自熄性,在树脂中不含有阻燃剂,分子中也不含卤素,所以燃烧时不会污秽环境,氧指数达24-35,阻燃等级为UL94V—0。PEEK除可溶于浓硫酸和浓硝酸中变黄外,对其他溶剂均稳定,但若结晶不充分,会在丙铜类溶剂中产生裂纹。
PEEK的成型加工可注塑、挤塑、吹塑、压制等。
用途:它是一种综合性能优良的工程塑料,薄膜可流延或定向,用作电线被覆线、原子能工程部件、H级或C级电绝缘材料、柔性印刷电路板、热泵机壳或机架、油井联接器、阀门、金属耐热或防腐涂料,单丝,包扎带,筛子、地铁、矿山、油田、电器工业、原子能工程、化工设备等方面。
peek在航空航天、汽车制造、电子电气、医疗和食品加工等领域得到广泛应用。
peek应用研究
PEEK具有优异的性能,其应用的领域还将随着国内应用研究而更加广泛,目前国内专门成立了重庆市九七三新材料研究中心就是专业从事PEEK在应用领域的研究。该研究中心是在重庆市各级政府的领导和关怀下成立,致力于在汽车领域、电子电器领域、交通领域等方面的研究,在目前应用研究方面走在了国内的前沿。
peek目前使用
目前在消毒柜和无线验证系统上,有时会采用peek,相当不锈钢的功效。
聚醚醚酮树脂( Polyether Ether Ketone,简称 PEEK树脂 )是由4,4‘-二氟二苯甲酮与对苯二酚在碱金属碳酸盐存在下,以二苯砜作溶剂进行缩合反应制得的一种新型半晶态芳香族热塑性工程塑料。它属耐高温热塑性塑料,具有较高的( 143℃ )和熔点( 343℃ ),负载热变型温度高达316℃( 30%玻璃纤维或碳纤维增强牌号 ),可在250℃下长期使用,与其他耐高温塑料如PI、PPS、PTFE、PPO等相比,使用温度上限高出近50℃;PEEK树脂不仅耐热性比其他耐高温塑料优异,而且具有高强度、高模量、高断裂韧性以及优良的尺寸稳定性;PEEK树脂在高温下能保持较高的强度,它在200℃时的弯曲强度达24MPa左右,在250℃下弯曲强度和压缩强度仍有12~13MPa;PEEK树脂的刚性较大,尺寸稳定性较好,线胀系数较小,非常接近于金属铝材料;具有优异的耐化学药品性,在通常的化学药品中,只有浓硫酸能溶解或者破坏它,它的耐腐蚀性与镍钢相近,同时其自身具有阻燃性,在火焰条件下释放烟和有毒气体少,抗辐射能力强;PEEK树脂的韧性好,对交变应力的优良耐疲劳性是所有塑料中最出众的,可与合金材料媲美;PEEK树脂具有突出的摩擦学特性,耐滑动磨损和微动磨损性能优异,尤其是能在250℃下保持高的耐磨性和低的摩擦系数;PEEK树脂易于挤出和注射成型,加工性能优异,成型效率较高。此外,PEEK还具有自润滑性好、易加工、绝缘性稳定、耐水解等优异性能,使得其在航空航天、汽车制造、电子电气、医疗和食品加工等领域具有广泛的应用,开发利用前景十分广阔。
peekPEEK加工
PEEK材料可以通过注塑方式和棒板机加工形式或者理想产品。在设计师设计PEEK产品模式或者小批量PEEK零件时候采用注塑方式不经济。通常会采用机加工方式来生产。PEEK材料可以和其他工程塑料一样采用相同的设备技术来加工和后整理去毛刺,由于PEEK材料具有良好的耐磨性能和很好的物理性一般建议采用硬质合金,金刚石车刀和钻头来操作
在加工PEEK产品零件时候一般要对peek棒或者peek板进行预先韧化,可以去除零件中的应力和残留应力。在机加工时候局部温度增加会导致材料中生产更多的应力因此可以对产品进行二次去除应力韧化处理。
peek相应指标
PEEK是Polyetheretherketone的简称,中文名是聚醚醚酮树脂,是一种高端的特种工程塑料。聚醚醚酮 / PEEK
·蠕变量低。
·弹性模量高。
·优异的摩擦性能。
·特别耐磨。
·抵抗各种介质的侵蚀,符合FDA认证,无毒。
·非常优异的耐化学性。
聚醚醚酮与(PPS),聚砜(PSF),聚酰亚胺(PI), 聚芳酯(PAR),液晶聚合物(LCP)一起被称为6大特种工程塑料。
peek板材棒材
PEEK棒材、板材
用纯PEEK原料制造的在所有PEEK板材级别中韧性最好,抗冲击最佳。 PEEK可以使用最方便的消毒方式进行消毒(蒸汽、干燥热力、乙醇和 Y),并且制造PEEK的原材料成分符合欧盟及美国FDA 关于食品应性的规定,这些特点使之适在医疗、制药和食品加工业得到非常普遍应用。
PEEK物性表
1.28 到 1.38
g/cm³
1.26 到 1.38
g/cm³
熔流率 (400°C/2.16 kg)
ASTM D1238
溶化体积流率(MVR) (380°C/10.0 kg)
14.1 到 23.8
cm³/10min
   流动: 23°C
1.2 到 1.5
横向流动: 23°C
1.4 到 1.9
形式颗粒料
g/cm³
收缩率 - 流量
  ISO 62
饱和, 23°C
 平衡, 23°C, 50% RH
 机械性能
拉伸模量 (23°C)
  ISO 527-2
屈服, 23°C
peek物性表
1.28 到 1.38
g/cm³
1.26 到 1.38
g/cm³
熔流率 (400°C/2.16 kg)
ASTM D1238
溶化体积流率(MVR) (380°C/10.0 kg)
14.1 到 23.8
cm³/10min
   流动: 23°C
1.2 到 1.5
横向流动: 23°C
1.4 到 1.9
.塑料新材网[引用日期]
.中国金属新闻网[引用日期]
清除历史记录关闭如何正确的使用PeekMessage_百度知道
如何正确的使用PeekMessage
我有更好的答案
HOWTO: How to Use PeekMessage() Correctly in WindowsSUMMARYIn the Windows environment, many applications use a PeekMessage() loop to perform background processing. Such applications must allow the Windows system to enter an idle state when their background processing is complete. Otherwise, system performance, &idle-time& system processes such as paging optimizations, and power management on battery-powered systems will be adversely affected. While an application is in a PeekMessage() loop, the Windows system cannot go idle. Therefore, an application should not remain in a PeekMessage() loop after its background processing has completed. NOTE: The PeekMessage method described in this article is only needed if your application is a 32-bit application for Windows and is, for some reason, unable to create threads and perform background processing.MORE INFORMATIONMany Windows-based applications use PeekMessage() to retrieve messages while they are in the middle of a long process, such as printing, repaginating, or recalculating, that must be done &in the background.& PeekMessage() is used in these situations because, unlike GetMessage(), it does not wait for a message to be placed in the queue before it returns. An application should not call PeekMessage() unless it has background processing to do between the calls to PeekMessage(). When an application is waiting for an input event, it should call GetMessage() or WaitMessage(). Remaining in a PeekMessage() loop when there is no background work causes system performance problems. A program in a PeekMessage() loop continues to be rescheduled by the Windows scheduler, consuming CPU time and taking time away from other processes. In enhanced mode, the Virtual Machine (VM) in which Windows is running will not appear to be idle as long as an application is calling the PeekMessage function. Therefore, the Windows VM will continue to receive a considerable fraction of CPU time. Many power management methods employed on laptop and notebook computers are based on the system going idle when there is no processing to do. An application that remains in a PeekMessage() loop will make the system appear busy to power management software, resulting in excessive power consumption and shortening the time that the user can run the system. In the future, the Windows system will make more and more use of idle time to do background processing, which is designed to optimize system performance. Applications that do not allow the system to go idle will adversely affect the performance of these techniques. All these problems can be avoided by calling the PeekMessage() function only when there is background work to do, and calling GetMessage() or WaitMessage() when there is no background work to do. For example, consider the following PeekMessage() loop. If there is no background processing to do, this loop will continue to run without waiting for messages, preventing the system from going idle and causing the negative effects described above.
// This PeekMessage loop will NOT let the system go idle.
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
if (msg.message == WM_QUIT)
return TRUE;
TranslateMessage(&msg);
DispatchMessage(&msg);
BackgroundProcessing();
}This loop can be rewritten in two ways, as shown below. Both of the following PeekMessage() loops have two desirable properties: •
They process all input messages before performing background processing, providing good response to user input.
The application &idles& (waits for an input message) when no background processing needs to be done.
Improved PeekMessage Loop 1// Improved PeekMessage() loopfor(;;)
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
if (msg.message == WM_QUIT)
return TRUE;
TranslateMessage(&msg);
DispatchMessage(&msg);
if (IfBackgroundProcessingRequired())
BackgroundProcessing();
WaitMessage(); // Will not return until a message is posted.
} Improved PeekMessage Loop 2// Another improved PeekMessage() loopfor (;;)
if (IfBackgroundProcessingRequired())
if (!PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
GetMessage(&msg, NULL, 0, 0, 0);
if (msg.message == WM_QUIT)
return TRUE;
TranslateMessage(&msg);
DispatchMessage(&msg);
BackgroundProcessing();
Note that calls to functions such as IsDialogMessage() and TranslateAccelerator() can be added to these loops as appropriate. There is one case in which the loops above need additional support: if the application waits for input from a device (for example, a fax board) that does not send standard Windows messages. For the reasons outlined above, a Windows-based application should not use a PeekMessage() loop to continuously poll the device. Rather, implement an Interrupt Service Routine (ISR) in a Dynamic-Link Library (DLL). When the ISR is called, the DLL can use the PostMessage function to inform the application that the device requires service. DLL functions can safely call the PostMessage() function because the PostMessage() function is reentrant.
PeekMessage和GetMessage函数的主要区别有:  1. GetMessage的主要功能是从消息队列中“取出”消息,消息被取出以后,就从消息队列中将其删除;而PeekMessage的主要功能是“窥视”消息,如果有消息,就返回true,否则返回false。也可以使用PeekMessage从消息队列中取出消息,这要用到它的一个参数(UINT wRemoveMsg),如果设置为PM_REMOVE,消息则被取出并从消息队列中删除;如果设置为PM_NOREMOVE,消息就不会从消息队列中取出。
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 while改成when 的文章

 

随机推荐