Top | Previous | Next |
system.util.invokeAsynchronous |
Description This is an advanced scripting function. Invokes (calls) the given Python function on a different thread. This means that calls to invokeAsynchronous will return immediately, and then the given function will start executing asynchronously on a different thread. This is useful for long-running data intensive functions, where running them synchronously (in the GUI thread) would make the GUI non-responsive for an unacceptable amount of time.
Syntax system.util.invokeAsynchronous(function) Parameters PyObject function - A Python function object that will get invoked with no arguments in a separate thread. Returns nothing Scope All Examples # This code would do some data-intensive processing, and then call # back to the GUI to let it know that it is finished. # We use default function parameters to pass the root container into these # functions. (See a Python reference if you don't understand this)
def longProcess(rootContainer = event.source.parent): import system # Do something here with the database that takes a long time results = ...( something ) # Now we'll send our results back to the UI def sendBack(results = results, rootContainer = rootContainer): rootContainer.resultsProperty = results system.util.invokeLater(sendBack)
system.util.invokeAsynchronous(longProcess)
|