<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns="http://www.w3.org/TR/REC-html40" xmlns:v = 
"urn:schemas-microsoft-com:vml" xmlns:o = 
"urn:schemas-microsoft-com:office:office" xmlns:w = 
"urn:schemas-microsoft-com:office:word" xmlns:st1 = 
"urn:schemas-microsoft-com:office:smarttags"><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2800.1458" name=GENERATOR><!--[if !mso]>
<STYLE>v\:* {
        BEHAVIOR: url(#default#VML)
}
o\:* {
        BEHAVIOR: url(#default#VML)
}
w\:* {
        BEHAVIOR: url(#default#VML)
}
.shape {
        BEHAVIOR: url(#default#VML)
}
</STYLE>
<![endif]--><o:SmartTagType 
namespaceuri="urn:schemas-microsoft-com:office:smarttags" 
name="place"></o:SmartTagType><o:SmartTagType 
namespaceuri="urn:schemas-microsoft-com:office:smarttags" 
name="PersonName"></o:SmartTagType><!--[if !mso]>
<STYLE>
st1\:*{behavior:url(#default#ieooui) }
</STYLE>
<![endif]-->
<STYLE>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal;
        font-family:Arial;
        color:navy;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:Arial;
        color:navy;}
@page Section1
        {size:595.3pt 841.9pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
        {page:Section1;}
-->
</STYLE>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]--></HEAD>
<BODY lang=EN-GB vLink=purple link=blue bgColor=white>
<DIV><FONT face=Arial size=2>Hi Phil</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Why don't you suspend your thread when processing 
has completed.&nbsp; Whenever data is received from the comport, call 
resume.&nbsp;</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV>Rob Martin<BR>Software Engineer<BR>&nbsp;<BR>phone 03 377 0495<BR>fax 03 
377 0496&nbsp;&nbsp;&nbsp; <BR>web <A 
href="http://www.chreos.com">www.chreos.com</A><BR>Wild Software Ltd</DIV>
<BLOCKQUOTE 
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV 
  style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B> 
  <A title=phil@tumonz.co.nz href="mailto:phil@tumonz.co.nz">Phil Middlemiss</A> 
  </DIV>
  <DIV style="FONT: 10pt arial"><B>To:</B> <A title=delphi@ns3.123.co.nz 
  href="mailto:delphi@ns3.123.co.nz">NZ Borland Developers Group - Delphi 
  List</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>Sent:</B> Friday, October 15, 2004 12:09 
  PM</DIV>
  <DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [DUG] Thread processes</DIV>
  <DIV><FONT face=Arial size=2></FONT><BR></DIV>
  <DIV><FONT face=Arial size=2>Thanks to all who replied. I will have a play - I 
  don't think I can get away with not calling ProcessMessages tho, since the COM 
  port component I use uses Timer messages to poll the COM port. I'll let you 
  know anyway.</FONT></DIV>
  <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
  <DIV><FONT face=Arial size=2>Cheers,</FONT></DIV>
  <DIV><FONT face=Arial size=2>Phil.</FONT></DIV>
  <BLOCKQUOTE 
  style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
    <DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
    <DIV 
    style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B> 
    <A title=stephen.bertram@ensynergy.co.nz 
    href="mailto:stephen.bertram@ensynergy.co.nz">Stephen Bertram</A> </DIV>
    <DIV style="FONT: 10pt arial"><B>To:</B> <A title=delphi@ns3.123.co.nz 
    href="mailto:delphi@ns3.123.co.nz">NZ Borland Developers Group - Delphi 
    List</A> </DIV>
    <DIV style="FONT: 10pt arial"><B>Sent:</B> Friday, October 15, 2004 11:28 
    AM</DIV>
    <DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [DUG] Thread 
    processes</DIV>
    <DIV><BR></DIV>
    <DIV class=Section1>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Sorry that should 
    have been Sleep(), not Wait() – Must be Friday </SPAN></FONT><FONT 
    face=Wingdings color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Wingdings">J</SPAN></FONT><FONT 
    face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Phil<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">IMO you should not 
    call ProcessMessages in a thread – that should be handled in the Main thread 
    only.<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">To avoid 100% CPU 
    usage try:<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">while not 
    terminated do<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">begin<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">&nbsp;&nbsp; if 
    MyTest then<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    DoMyProcess;<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">&nbsp; 
    Sleep(1);<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">end;<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Even using Sleep(0) 
    avoids the thread hogging resources.<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">HTH<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Stephen<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
    <DIV>
    <DIV class=MsoNormal style="TEXT-ALIGN: center" align=center><FONT 
    face="Times New Roman" size=3><SPAN lang=EN-US style="FONT-SIZE: 12pt">
    <HR tabIndex=-1 align=center width="100%" SIZE=2>
    </SPAN></FONT></DIV>
    <P class=MsoNormal><B><FONT face=Tahoma size=2><SPAN lang=EN-US 
    style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">From:</SPAN></FONT></B><FONT 
    face=Tahoma size=2><SPAN lang=EN-US 
    style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"> delphi-bounces@ns3.123.co.nz 
    [mailto:delphi-bounces@ns3.123.co.nz] <B><SPAN style="FONT-WEIGHT: bold">On 
    Behalf Of </SPAN></B>Phil Middlemiss<BR><B><SPAN 
    style="FONT-WEIGHT: bold">Sent:</SPAN></B> Friday, 15 October 2004 11:16 
    a.m.<BR><B><SPAN style="FONT-WEIGHT: bold">To:</SPAN></B> <st1:PersonName 
    w:st="on">NZ Borland Developers Group - <st1:place 
    w:st="on">Delphi</st1:place> List</st1:PersonName><BR><B><SPAN 
    style="FONT-WEIGHT: bold">Subject:</SPAN></B> [DUG] Thread 
    processes</SPAN></FONT><SPAN lang=EN-US><o:p></o:p></SPAN></P></DIV>
    <P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN 
    style="FONT-SIZE: 12pt"><o:p>&nbsp;</o:p></SPAN></FONT></P>
    <DIV>
    <P class=MsoNormal><FONT face=Arial size=2><SPAN 
    style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">I have a thread that sits in the 
    background waiting for input from&nbsp;a COM port. the execute method simple 
    has these two lines:</SPAN></FONT><o:p></o:p></P></DIV>
    <DIV>
    <P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN 
    style="FONT-SIZE: 12pt">&nbsp;<o:p></o:p></SPAN></FONT></P></DIV>
    <DIV>
    <P class=MsoNormal><FONT face=Arial size=2><SPAN 
    style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">&nbsp; while not Terminated 
    do<BR>&nbsp;&nbsp;&nbsp; 
    Application.ProcessMessages;</SPAN></FONT><o:p></o:p></P></DIV>
    <DIV>
    <P class=MsoNormal><FONT face=Arial size=2><SPAN 
    style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">The problem with this is that 
    the processor usage is very high, even if the thread is doing nothing but 
    sitting there calling processmessages.</SPAN></FONT><o:p></o:p></P></DIV>
    <DIV>
    <P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN 
    style="FONT-SIZE: 12pt">&nbsp;<o:p></o:p></SPAN></FONT></P></DIV>
    <DIV>
    <P class=MsoNormal><FONT face=Arial size=2><SPAN 
    style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">The main application thread 
    doesn't have this problem, yet it also has a message handling routine. Is 
    there a way to avoid this problem in 
    threads?</SPAN></FONT><o:p></o:p></P></DIV>
    <DIV>
    <P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN 
    style="FONT-SIZE: 12pt">&nbsp;<o:p></o:p></SPAN></FONT></P></DIV>
    <DIV>
    <P class=MsoNormal><FONT face=Arial size=2><SPAN 
    style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Cheers,</SPAN></FONT><o:p></o:p></P></DIV>
    <DIV>
    <P class=MsoNormal><FONT face=Arial size=2><SPAN 
    style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Phil.<o:p></o:p></SPAN></FONT></P></DIV></DIV>
    <P>
    <HR>

    <P></P>_______________________________________________<BR>Delphi mailing 
    list<BR>Delphi@ns3.123.co.nz<BR>http://ns3.123.co.nz/mailman/listinfo/delphi<BR></BLOCKQUOTE>
  <P>
  <HR>

  <P></P>_______________________________________________<BR>Delphi mailing 
  list<BR>Delphi@ns3.123.co.nz<BR>http://ns3.123.co.nz/mailman/listinfo/delphi<BR></BLOCKQUOTE></BODY></HTML>