Dispatching a Win32 COM in the background?
Steven M. Castellotti
SteveC at nospam.innocent.com
Fri Jun 21 15:06:49 EDT 2002
On Thu, 20 Jun 2002 20:22:40 -0500, Peter Hansen wrote:
> "Steven M. Castellotti" wrote:
>>
>> Thanks a lot guys, your suggestions have worked perfectly!
>>
>> Just for the record, here's what the full implementation looks
>> like.
>
> Beautiful... thanks for the followup Steven. I especially like your use
> of deferred imports to speed up initial program loading.
Thank you for the compliment. Speeding up program loading by deferring
imports is really only a side bonus though. The program is actually
cross-platfrom, meant to be run under both Linux and Windows. Since I'm
making calls to the Festival TTS program under linux, I have a seperate
class object, depending on what gets returned by os.name.
> [...]
>> if not(self.text_queue.empty()):
>> text = self.text_queue.get()
>> speech.Speak(text)
>> time.sleep(.001)
>
> Note that the time.sleep() as shown above is doing nothing useful for
> you. I suspect you had it unindented but your posting probably used
> tabs and spaces which makes it hard to see properly on some readers.
>
> The reason it does nothing useful is that Python will automatically
> switch between different threads every so often anyway, so the concept
> of giving up the CPU for what amounts to a tiny fraction of a second is
> somewhat unnecessary.
That makes sense to me, I think I'll remove the time.sleep() call. The
reason I had it in there in the first place (and it was unindented) was
because I have a similar call in a loop to Pygame (a wrapper to the SDL
graphics library), which is not multithreaded. I needed the calls in the
Pygame loop in order to prevent CPU usage from sitting at 100%, but if
multithreading will happen properly without it, I won't use it.
Cheers,
Steve Castellotti
SteveC (at) innocent.com
http://cogengine.sourceforge.net/
More information about the Python-list
mailing list