Dennis Lee Bieber wrote:

> On 19 Jul 2006 19:08:12 -0700, "gel" <[EMAIL PROTECTED]> declaimed the
> following in comp.lang.python:
>
> > import thread
> >
>       Step one... Skip the thread module and use threading module instead.
>
> > def create():
> >
> >         pythoncom.CoInitialize()
> >         c = wmi.WMI()
> >         while 1 :
> >
> >             print "watching creation"
> >             watcher = c.watch_for(notification_type="Creation",
> > wmi_class="Win32_Process", delay_secs=1)
>
>       I don't know WMI, but is that delay a real sleep operation, or a
> polling loop?
>
>       And either could be a problem if they hold the GIL -- preventing
> anything else from running until they return...
>
> >
> > thread.start_new_thread(create(),())
> > thread.start_new_thread(delete(),())
>
>       At the very least, I suggest commenting out the COM and WMI calls --
> test threads that ONLY print output and do a time.sleep(1). That should
> be sufficient to see if the threads themselves are being started.
> --
>       Wulfraed        Dennis Lee Bieber               KD6MOG
>       [EMAIL PROTECTED]               [EMAIL PROTECTED]
>               HTTP://wlfraed.home.netcom.com/
>       (Bestiaria Support Staff:               [EMAIL PROTECTED])
>               HTTP://www.bestiaria.com/

Thanks alot for your help.  I had tried using threading with a
different setup in the function side but did not get success. I think
that I have winner now.  Thanks again.  What follows is the what I have
working so far.  And another question why do you prefer to us threading
and thread?

import wmi
import pythoncom
import threading

def create():

        pythoncom.CoInitialize()
        c = wmi.WMI()
        while 1 :

            print "watching creation"
            watcher = c.watch_for(notification_type="Creation",
wmi_class="Win32_Process", delay_secs=1)
            print watcher()

def delete():

        pythoncom.CoInitialize()
        d = wmi.WMI()
        while 1 :
            print "watching deletion"
            watcher = d.watch_for(notification_type="Deletion",
wmi_class="Win32_Process", delay_secs=1)
            print watcher()

import threading
threading.Thread(target=create).start()
threading.Thread(target=delete).start()

Cheers

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to