¹«Ë¾LOGO
NSK Global Site
ÁªÏµÎÒÃÇ
ÁªÏµÎÒÃÇ
Õ¾µãµØÍ¼
Äúµ±Ç°µÄλÖ㺹«Ë¾Ö÷Ò³ >¶àÏ̼߳¼Êõ½â¾ö¿ª·ÅʽÊý¿ØÏµÍ³ÊµÊ±ÐÔÄܵÄÓ¦ÓÃÉè¼Æ

¶àÏ̼߳¼Êõ½â¾ö¿ª·ÅʽÊý¿ØÏµÍ³ÊµÊ±ÐÔÄܵÄÓ¦ÓÃÉè¼Æ

×÷Õߣºbearingpower        ·¢±íʱ¼ä£º2010-12-12

¶àÏ̼߳¼Êõ½â¾ö¿ª·ÅʽÊý¿ØÏµÍ³ÊµÊ±ÐÔÄܵÄÓ¦ÓÃÉè¼Æ¹Ø¼ü×Ö£º¶àÏ̼߳¼Êõ ¡¡¡¡ÈçºÎÍê³É¶àÈÎÎñµÄʵʱ¿ØÖÆ£¬ÊÇ¿ª·¢Êý¿ØÏµÍ³±ØÐë½â¾öµÄ¹Ø¼üÎÊÌâ¡£±¾ÎĽéÉÜÁ˶àÏ̼߳¼ÊõµÄ»ù±¾¸ÅÄ·ÖÎöÁËC++ builder»·¾³Ï¶àÏ̼߳¼ÊõµÄÓ¦Ó÷½·¨£¬Í¨¹ý¿ª·¢ÊµÀý¸ø³öÁ˶àÏ̼߳¼ÊõÔÚʵÏÖÊý¿ØÏµÍ³µÄʵʱÏìÓ¦ÖеÄÓ¦Óᣡ¡¡¡1ÒýÑÔ¡¡¡¡ÊµÊ±ÐÔÊÇÊý¿ØÏµÍ³Ò»ÏîÖØÒªµÄÐÔÄÜÖ¸±ê¡£¡¡¡¡ÔÚIPC(Industrial Personal Computer)£«Ô˶¯¿ØÖÆÆ÷¹¹³ÉµÄ¿ª·ÅʽÊý¿ØÏµÍ³¿ª·¢Æ½Ì¨ÉÏ£¬ËäÈ»ÕâÖÖÖ÷´Óʽ½á¹¹£¬È·±£ÁËÔ˶¯¿ØÖÆÖ¸ÁîÔÚÔ˶¯¿ØÖÆÆ÷ÄÚ¸ßËÙ¡¢ÊµÊ±µÄ±»Ö´ÐУ¬µ«ÔÚPC»úÉÏ£¬ÈÔÐèÒªÍê³ÉÖîÈçʵʱÏÔʾ¡¢Ô¤´¦Àí¼ÆË㡢ϵͳ״̬¼à¿ØµÈÐí¶àÈÎÎñ¡£ÎªÁ˱£Ö¤ÏµÍ³µÄʵʱÐÔÄÜ£¬Äâ²ÉÓöàÏ̼߳¼Êõ£¬Í¨¹ý¶àÈÎÎñ²¢Ðд¦ÀíµÄ·½Ê½£¬Ìá¸ßϵͳʵʱÐÔ¡£¡¡¡¡±¾¿ª·¢Æ½Ì¨²ÉÓÃIPC£«Ô˶¯¿ØÖÆÆ÷ģʽµÄ¿ª·ÅʽÊý¿ØÏµÍ³£¬Ö÷ÒªµÄÔ˶¯¿ØÖÆÓɹ̸߹«Ë¾µÄGT400-SVͨÓÃÔ˶¯¿ØÖÆÆ÷Íê³É¡£ËüÌṩCÓïÑÔº¯Êý¿âGT400sv.libºÍWindows¶¯Ì¬Á¬½Ó¿âGT400.dll£¬Äܹ»ÊµÏÖ¸´ÔӵĿØÖƹ¦ÄÜ¡£Êý¿ØÏµÍ³µÄ¿ª·¢Êǽ«ÕâЩ¿ØÖƺ¯ÊýÓë×Ô¼º¿ØÖÆÏµÍ³ËùÐèµÄÊý¾Ý´¦Àí¡¢½çÃæÏÔʾ¡¢Óû§½Ó¿ÚµÈÓ¦ÓóÌÐòÄ£¿é¼¯³ÉÔÚÒ»Æð£¬½¨Ôì·ûºÏÌØ¶¨Ó¦ÓÃÒªÇóµÄ¿ØÖÆÏµÍ³¡£¡¡¡¡2½ø³ÌÓëÏß³ÌÒÔ¼°¶àÏ̼߳¼Êõ¡¡¡¡Windows²Ù×÷ϵͳ¼ÈÖ§³Ö¶à½ø³Ì£¬ÓÖÖ§³Ö¶àÏ̡߳£Ò»¸ö½ø³Ì¾ÍÊÇÓ¦ÓóÌÐòµÄÒ»¸öʵÀý£¬Ò»´ÎÖ´Ðйý³ÌÒ²¾ÍÊǵ÷ÈëÄÚ´æ×¼±¸Ö´ÐеijÌÐò£¬°üÀ¨µ±Ç°Ö´ÐеÄÓ¦ÓóÌÐòµÄÖ´ÐдúÂëºÍ³ÌÐòÖ´ÐÐÏà¹ØµÄһЩ»·¾³ÐÅÏ¢¡£Ã¿¸ö½ø³ÌÓµÓÐÕų̂¼ÆËã»úµÄ×ÊÔ´£¬ÎÞÐëÖªµÀÆäËû½ø³ÌÔÚ¼ÆËã»úÖеÄÐÅÏ¢¡£Í¨³£Ã¿¸ö½ø³ÌÖÁÉÙÓÐÒ»¸öÏß³ÌÔÚÖ´ÐÐËùÊôµØÖ·¿Õ¼äÖеĴúÂ룬¸ÃÏ̳߳ÆÎªÖ÷Ị̈߳¬Èç¹û¸ÃÖ÷Ïß³ÌÔËÐнáÊø£¬ÏµÍ³½«×Ô¶¯Çå³ý½ø³Ì¼°ÆäËûµØÖ·¿Õ¼ä¡£¡¡¡¡Ïß³ÌÊǽø³ÌÄÚ²¿Ö´ÐеÄ·¾¶£¬ÊDzÙ×÷ϵͳ·ÖÅäCPUʱ¼äµÄ»ù±¾ÊµÌ壬ÊdzÌÐòÔËÐеÄ×îСµ¥Î»¡£Ã¿¸ö½ø³Ì¶¼ÓÉÖ÷Ï߳̿ªÊ¼½øÐÐÓ¦ÓóÌÐòµÄÖ´ÐС£Ïß³ÌÓÉÒ»¸ö¶ÑÕ»¡¢CPU¼Ä´æÆ÷µÄ״̬ºÍϵͳµ÷ÓÃÁбíÖеÄÒ»¸öÈë¿Ú×é³É¡£Ã¿¸ö½ø³Ì¿ÉÒÔ°üº¬Ò»¸öÒÔÉϵÄỊ̈߳¬ÕâЩÏ߳̿ÉÒÔͬʱ¶ÀÁ¢µØÖ´Ðнø³ÌµØÖ·¿Õ¼äÖеĴúÂ룬¹²Ïí½ø³ÌÖеÄËùÓÐ×ÊÔ´¡£¡¡¡¡Windowsϵͳ·ÖÅä´¦ÀíÆ÷ʱ¼äµÄ×îСµ¥Î»ÊÇỊ̈߳¬ÏµÍ³²»Í£µØÔÚ¸÷¸öÏß³ÌÖ®¼äÇл»¡£ÔÚPC»úÖУ¬Í¬Ò»Ê±¼äÖ»ÓÐÒ»¸öÏß³ÌÔÚÔËÐС£Í¨³£ÏµÍ³ÎªÃ¿¸öÏ̻߳®·ÖµÄʱ¼äƬºÜС(ms¼¶±ð)£¬ÕâÑù¿ìËÙϵͳµÄʵʱÐÔ¾ÍÓÐÁ˱£ÕÏ¡£¡¡¡¡ÒªÊµÏÖ¶àÏ̱߳à³Ì£¬¿É½¨Á¢¸¨ÖúÏß³Ì(worker Thread)ºÍÓû§½çÃæÏß³Ì(User Interface Thread)¡£¸¨ÖúÏß³ÌÖ÷ÒªÓÃÀ´Ö´ÐÐÊý¿Ø³ÌÐò¡¢×ø±êÏÔʾ¡¢¶¯Ì¬·ÂÕæºÍÊý¾ÝÔ¤´¦Àí£»Óû§½çÃæÏß³ÌÓÃÀ´´¦ÀíÓû§µÄÊäÈ룬ÏìÓ¦Óû§²úÉúµÄʼþºÍÏûÏ¢¡£¡¡¡¡3Êý¿ØÏµÍ³ÊµÊ±ÐÔ·ÖÎö¡¡¡¡3.1Ï̵߳ÄʵʱÐÔ¡¡¡¡Êý¿ØÏµÍ³ÐèÒªÍê³ÉµÄÈÎÎñÓкܶ࣬ÕâЩÈÎÎñÖУ¬ÓÅÏȼ¶µÄÒªÇó¼¶±ð²»Ò»Ñù¡£¾Ý´Ë£¬¿ÉÒÔÀûÓÃWindowsϵͳµÄ¶àÈÎÎñ¡¢ÇÀռʽµÄÌØµãºÍ¶àÏ̼߳¼Êõ½«¸÷¸öÈÎÎñ·Ö¸ø²»Í¬µÄỊ̈߳¬²¢¸³Óè¸÷¸öÏ̲߳»Í¬µÄÓÅÏȼ¶£¬µ±¸ßÓÅÏȼ¶µÄÏß³ÌÖ´ÐÐʱ£¬¼´ÊµÊ±ÐÔÒªÇó¸ßµÄÈÎÎñÐèÒªÖ´ÐÐʱ£¬¿ÉÒÔ×Ô¶¯µØÖÕÖ¹ÆäËûÏ̵߳Ť×÷ת¶øÖ´ÐÐÕâÒ»Ï̡߳£Í¨¹ýÕâÒ»·½·¨£¬¿ÉÒÔʵÏÖÊý¿ØÏµÍ³ËùÒªÇóµÄʵʱÐÔ¡£¡¡¡¡3.2¸¨ÖúÏ̴߳´½¨¡¡¡¡±¾¿ª·¢ÏµÍ³ÖÐËù´´½¨µÄ¸¨ÖúÏ߳̿ɴóÖ»®·ÖÈçÏ£º¡¡¡¡(1)×ø±êÏÔʾÏ̡߳¡¡¡ÔÚÊÖ¶¯Âö³åÃæ°å¡¢µç¶¯¿ØÖÆÃæ°åºÍÔöÁ¿¿ØÖÆÃæ°åÖУ¬¿ÉʵʱÏÔʾX¡¢Y¡¢ZÈý¸öÔ˶¯ÖáµÄ×ø±ê¡£ÕâÑù¿Éʹ²Ù×÷ÈËÔ±Ö±¹Û¿´µ½ÈýÖáµÄʵ¼Ê×ø±ê¡£ÊµÊ±ÐÔÒªÇó½ÏµÍ£¬ËùÒÔʹÓÃ×îµÍÓÅÏȼ¶£ºLowest Normal¡£¡¡¡¡(2)ͼÐÎÏÔʾÏ̡߳¡¡¡Í¼ÏñÏÔʾÏß³ÌÓÃÓÚÔÚ¶¯Ì¬·Â;̾°åÖÐÖ´ÐÐͼÐλæÖƵÄÖ¸Áͨ¹ýͼÐÎÏÔʾ£¬²Ù×÷Õß¿ÉÒÔÔÚ¶¯Ì¬·ÂÕæµÄͬʱ£¬¶ÔÈË»ú½çÃæ½øÐвÙ×÷¡£ÕâÒ»Ïß³ÌʵʱÐÔÒªÇó½ÏµÍ£¬µÈ¼¶Îª£ºBlow Normal¡£¡¡¡¡(3)IO״̬¿ØÖÆÏ̡߳¡¡¡´ËÏß³ÌÓÃÓÚ¼ì²âÓÉϵͳÊäÈëµÄ¸÷¸öÀëÉ¢Á¿£¬ÒÔ¼°´ÓÊý¿Ø³ÌÐòµÃµ½µÄÖ¸ÁîÀ´Êä³ö»ú´²¸÷ÀëÉ¢Á¿µÄ״̬¡£´ËÏß³ÌÓÅÏȼ¶±ÈǰÁ½Ï̸߳ߣ¬µÈ¼¶Îª£ºNormal¡£¡¡¡¡(4)Êý¾ÝÔ¤´¦ÀíÏ̡߳¡¡¡Êý¾ÝÔ¤´¦ÀíÏß³ÌÖ÷Òª¸ºÔðÍê³É±àÂëÐÎʽת»»¡¢µ¶¾ß³¤¶È²¹³¥¡¢µ¶¾ß°ë¾¶²¹³¥ºÍ¹«Ó¢ÖÆ×ª»»µÈÔ˶¯¿ØÖÆÊý¾ÝÔ¤´¦Àíº¯ÊýµÄÖ´ÐС£µÈ¼¶Îª£ºNormal¡£¡¡¡¡(5)Ô˶¯¿ØÖÆÏ̡߳¡¡¡´ËÏß³ÌÖ÷ÒªÓÃÓÚÔ˶¯¿ØÖÆÆ÷Ö´ÐÐÊý¿Ø´úÂ뺯ÊýµÄÔËÐС£¸ºÔðÏò»º³åÆ÷ÊäÈëÔ˶¯¿ØÖÆÃüÁÇå¿Õ»º³åÆ÷ºÍ´ò¿ª¹Ø±Õ»º³åÆ÷µÈ²Ù×÷¡£µÈ¼¶ÉԸߣºAbove Normal¡£¡¡¡¡(6)½ô¼±¿ØÖÆÏ̡߳¡¡¡´ËÏ̴߳¦ÀíһЩÐèÒª»ú´²Á¢¼´×ö³ö·´Ó¦µÄʱ¼ä£¬Èç»ú´²µÄ¼±Í£µÈ¡£ÓÅÏȼ¶×î¸ß£¬µÈ¼¶Îª£ºHighest¡£¡¡¡¡±¾ÏµÍ³ÖÐËù´´½¨µÄ¸¨ÖúÏ߳̿ɴóÖ»®·ÖÈçϱíËùʾ¡£¡¡¡¡±íÏ̵߳Ĵ´½¨¼°ÓÅÏȼ¶ÉèÖá¡¡¡4¶àÏ̵߳ÄʵÏÖ¡¡¡¡ÔÚWindows²Ù×÷ϵͳÖУ¬¶àÏ̵߳ÄʵÏÖÐèÒªµ÷ÓÃһϵÁеÄAPIº¯Êý£¬ÈçCreateThread¡¢ResumeThreadµÈ£¬±È½ÏÂé·³ÇÒÈÝÒ׳ö´í¡£Ê¹ÓÃÐÂÒ»´úRAD¿ª·¢¹¤¾ßC++ BuilderÖеÄTThreadÀ࣬¿ÉÒÔ·½±ãµØÊµÏÖ¶àÏ̵߳ıà³Ì£¬ÌرðÊǶÔÓÚϵͳ¿ª·¢ÓïÑÔÊÇCµÄWindowsϵÁвÙ×÷ϵͳ£¬Ëü¾ßÓÐÆäËü±à³ÌÓïÑÔÎ޿ɱÈÄâµÄÓÅÊÆ¡£¡¡¡¡4.1Ï̵߳Ĵ´½¨¡¡¡¡ÔÚC++ BuilderÖÐËäÈ»ÓÃTThread¶ÔÏó˵Ã÷ÁËÏ̵߳ĸÅÄµ«ÊÇTThread¶ÔÏó±¾Éí²¢²»ÍêÕû£¬ÐèÒªÔÚTThreadÏÂн¨Æä×ÓÀ࣬²¢ÖØÔØExecuteÀ´Ê¹ÓÃÏ̶߳ÔÏ󡣡¡¡¡ÔÚC++ Builder IDE»·¾³ÏÂÑ¡Ôñ²Ëµ¥File|New£¬ÔÚNewÀ¸ÖÐÑ¡ÖÐThread Object£¬°´OK£¬ÔÚµ¯³öµÄ¶Ô»°¿òÖÐÊäÈëTThread¶ÔÏó×ÓÀàµÄÃû×ÖCoordinateDisplyThread£¬×Ô¶¯´´½¨ÁËÒ»¸öCoordinateDisplyµÄTThread×ÓÀࡣͬʱÔڱ༭Æ÷Öд´½¨ÁËÒ»¸öÃûΪCoordinateDisplyThreadµ¥Ôª¡£¡¡¡¡4.2Ï̵߳ÄʵÏÖ¡¡¡¡ÔÚ´´½¨µÄ´úÂëÖÐExecute()º¯Êý¾ÍÊÇÒªÔÚÏß³ÌÖÐʵÏÖµÄÈÎÎñµÄ´úÂëËùÔÚ´¦¡£ÔÚÔ­Unit1.cpp´úÂëÖаüº¬ÁËCoordinateDisplayThread.hÎļþ¡£Ê¹ÓÃʱ£¬¶¯Ì¬´´½¨Ò»¸öTCoordinateDisplay¶ÔÏ󣬾ßÌåÖ´ÐеĴúÂë¾ÍÊÇExecute()·½·¨ÖØÔصĴúÂë¡£¡¡¡¡ÓÉÓÚExecute()ÖÐÌí¼ÓµÄÏß³ÌÔËÐÐʱËùÐèÒªÖ´Ðеĺ¯Êýµ÷ÓÃÁËVCL×é¼þ£¬¶øVCL¶ÔÏó²»¾ßÓÐḬ̈߳²È«ÐÔ£¬ËüÃǵÄÌØÐԺͷ½·¨Ö»ÄÜÔÚÖ÷Ïß³ÌÖзÃÎÊ£¬ËùÒÔÓÃSynchronize()º¯Êý½«×ø±êÏÔʾº¯Êý½øÐаü×°¡£¶ø×ø±êÏÔʾº¯ÊýÐèÉùÃ÷£ºvoid_fastcall Function()¡£¡¡¡¡ÏÂÃæÒÔ×ø±êÏÔʾÏ̼߳´CoordinateDisplayThreadµÄʵÏÖ²½ÖèΪÀý£¬ËµÃ÷Ïß³ÌʵÏֵľßÌå·½·¨¡£ÆäËûÏ̵߳ÄʵÏÖÐè¸ù¾Ý¾ßÌåÇé¿ö£¬½øÐÐÐÞÕý¡£¡¡¡¡ÔÚCoordinateDisplayThread.cppÎļþÖеÄCoordinateDisplayThread::Execute()º¯ÊýÀïÌí¼ÓÈçÏÂÓï¾ä£¬ÊµÏÖX¡¢Y¡¢Z×ø±êÏÔʾº¯Êýµ÷ÓõÄÒ»ÖÂÐÔ¡£¡¡¡¡Ê×ÏÈÓÃswitchÓï¾äÅжϵ¥ÖáÔ˶¯ÖеÄÄÄÒ»ÖáµÄ×ø±êλÖ÷¢Éú¸Ä±ä£º¡¡¡¡×öºÃÉÏÊö×¼±¸¹¤×÷Ö®ºó£¬ÐèÒªÔÚÖ÷µ¥ÔªÖеÄÊʵ±µÄλÖÃÌí¼Ó¿ªÊ¼Ïß³ÌºÍ¹ÒÆðÏ̵߳ÄÃüÁî¡£´úÂëÈçÏÂËùʾ£º¡¡¡¡4.3¹ØÓÚÏß³Ìͬ²½¡¡¡¡Ïß³Ìͬ²½ÔÚ±à³Ì¼¼ÊõÖзdz£ÖØÒª£¬µ±Ò»¸öÏß³ÌÔÚ·ÃÎÊÒ»¸ö½ø³Ì¶ÔÏóʱ£¬Èç¹ûÁíÒ»¸öÏß³ÌÒª¸Ä±ä¸Ã¶ÔÏ󣬿ÉÄܲúÉú´íÎóµÄ½á¹û¡£ÔÚ±¾Àý¿ª·¢Ó¦ÓÃÖУ¬ÀûÓÃAPIº¯Êý£¬¿ÉÒÔÖ±½ÓʹÓÃÁÙ½ç»ò»¥³âÀ´´ïµ½Í¬²½µÄÄ¿µÄ¡£ÎªÁËÌá¸ßͬ²½µÄ¿É¿¿ÐÔºÍÁé»îÐÔ£¬Í¬Ê±Óõ½Á˱êÖ¾±äÁ¿ºÍÁÙ½ç»úÖÆ¡£Ö»ÐèÔÚ³ÌÐòÖÐÉùÃ÷Ò»¸öTRTLCriticalSectionÀàÐ͵ıäÁ¿Sect1£¬²¢ÔÚÖ÷Ï̵߳Ĺ¹Ô캯ÊýÖнøÐгõʼ»¯¡£Ö®ºóÔÚij¸öÏß³ÌÖУ¬¿ÉÒÔ°ÑÏàÓ¦µÄ´úÂë±ê¼ÇΪÁٽ粿·Ö£¬µ±ÔÚÒ»¸öÏß³ÌÖе÷ÓÃEnterCriticalSection()²¢´«µÝSect1ʱ£¬¾ÍÉèÖöà¸öÊý¾Ý³ÉÔ±£¬ÒÔ±íÃ÷Áٽ粿·Ö½øÈë»î¶¯×´Ì¬¡£Èç¹ûÁíÒ»¸öÏß³ÌÒªµ÷ÓÃËü×Ô¼ºµÄÁٽ粿·Öʱ£¬º¯ÊýEnterCriticalSection()½«·¢ÏÖÓÐÒ»¸öÁٽ粿·ÖÕýÔÚʹÓ㬾ÍÈõڶþ¸öÏ̴߳¦ÓÚÐÝÃß״̬£¬Ö±µ½µÚÒ»¸öÏß³ÌÍ˳öÁٽ粿·ÖΪֹ¡£¡¡¡¡5½áÊøÓï¡¡¡¡±¾ÎĽ«C++ builder¶àÏ̼߳¼ÊõÓ¦ÓÃÓÚ¿ª·ÅʽÊý¿ØÏµÍ³µÄÈí¼þÉè¼ÆÖУ¬ÓÐЧµÄ½â¾öÁËÏß³Ìͬ²½ÎÊÌ⣬±£Ö¤ÁËÊý¿ØÈí¼þϵͳµÄʵʱÐÔÒªÇó£¬È¡µÃÁ˽ϺõÄÔËÓÃЧ¹û¡£
  • Êг¡Ò»²¿£º022-58519722
  • Êг¡¶þ²¿£º022-58519723
  • ͶËßÊÜÀí£º022-58519721
  • ´«Õæ×Ü»ú£º022-23868160