Hi,

Found the reason. The COM component in this case somehow depends on the windows 
message pump.

 
    while FlagToStop == False :
        win32gui.PumpMessages();

Solved the issue.

Marcus.
  ----- Original Message ----- 
  From: Marcus Low 
  To: 'Python-Win32 List' 
  Sent: Monday, March 31, 2008 4:48 PM
  Subject: [python-win32] Threads in COM not given time to execute?


  Hi,

  I am testing a COM component, when i execute it under pythonwin idle and 
single stepping F10 to "SmtpMail.Start()" :

      SmtpMail = win32com.client.Dispatch("SomeSMTPCom")
      SmtpMail.Start()    
      
  I can telnet to 127.0.0.1 25 and get a proper SMTP response


  But when i run the program it just quits so i am assuming SmtpMail.Start() 
does not block. So i added a function to wait for an event
  before allowing the function to quit to that SmtpMail.Start() can run as long 
as it want :-

  def MainEntry () :
      global FlagToStop

      SmtpMail = win32com.client.Dispatch("SomeSMTPCom")
      SmtpMail.Start()    
      thread.start_new(CheckForQuit,(0,))
      
      while FlagToStop == False :
          win32api.Sleep(1000)      # i tried os.sleep(0), pass but the uses 
50% of cpu

      SmtpMail.Stop()
      

  i have confirmed that the it will loop in "While FlagToStop ..." however when 
i telnet 127.0.0.1 25, it gets connected but i don't get a reply from the COM 
which
  is a STMP component. I can get a response if i use single step to where 
".Start()" but if i just run the program i get this feeling that the COM object 
here doesnt
  get the time to execute and thus could not respond.

  Am i missing out some basic steps here?


  Marcus.



------------------------------------------------------------------------------


  _______________________________________________
  python-win32 mailing list
  python-win32@python.org
  http://mail.python.org/mailman/listinfo/python-win32
_______________________________________________
python-win32 mailing list
python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to