is this a question or an answer? is this a cocoa question or a PyObjC
question?

On 6/6/07, Tom Elliott <[EMAIL PROTECTED]> wrote:

The kill() method is just a stub, written back when I thought the way to
do this is for the main thread to terminate the worker thread.  Now, after
more reading, I realize it's better to have the worker test a condition
periodically and exit (gracefully) if necessary.
The withObject_ parameter can be used to pass a reference back to the
original thread.  This is useful when the new thread executes a method in a
different class.  I ended up just calling a method in the same class, like
this:

from Foundation import *
from AppKit import *
import objc, time

from PyObjCTools import NibClassBuilder

class PyThreadAppDelegate(NibClassBuilder.AutoBaseClass):
    def init(self):
        self = super(PyThreadAppDelegate, self).init()
        return self


    def go_(self, sender):
        print 'go_'
        self.continueFlag = True
        #t = Threaded.alloc().init()
        NSThread.detachNewThreadSelector_toTarget_withObject_(
            'newThread:', self, None)


    def kill_(self, sender):
        print 'kill_'
        self.continueFlag = False


    @objc.signature('v:@')
    def newThread_(sender):
        pool = NSAutoreleasePool.alloc().init()
        print 'Threaded', sender
        for i in range(10):
            if sender.continueFlag:
                time.sleep(1)
                print i
        del pool

Thanks.

_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig




--

"lalalalala! it's not broken because I can use it"

http://linux.slashdot.org/comments.pl?sid=194281&threshold=1&commentsort=0&mode=thread&cid=15927703
_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig

Reply via email to