Domanda

Non ho mai programmato in Python prima, in modo scusare il mio codice. Ho questo script che verrà eseguito in un terminale, ma non riesco a farlo funzionare lato client. Sto facendo funzionare questa applicazione in titanio di Appcelerator. In ogni caso, ho la risoluzione dei problemi e sembra che non sia in esecuzione i fili a tutti. Si tratta di una limitazione? qualcuno sa?

<script type="text/python">
import os
import sys
import Queue
import threading
class FindThread ( threading.Thread ):
   def run ( self ):
      running = True
      while running:
         if jobPool.empty(): 
            #print '<< CLOSING THREAD'
            running = False
            continue

         job = jobPool.get()
         window.document.getElementById('output').innerHTML +=  os.path.join(top, name)
         if job != None:
            dirSearch(job)             

jobPool = Queue.Queue ( 0 )

def findPython():
    #output = window.document.getElementById('output')
    window.document.getElementById('output').innerHTML += "Starting"
    dirSearch("/")
    # Start 10 threads:
    for x in xrange ( 10 ):
        #print '>> OPENING THREAD'
        FindThread().start()

def dirSearch(top = "."):
    import os, stat, types
    names = os.listdir(top)
    for name in names:
        try:
            st = os.lstat(os.path.join(top, name))
        except os.error:
            continue
        if stat.S_ISDIR(st.st_mode):
            jobPool.put( os.path.join(top, name) )
        else:
            window.document.getElementById('output').innerHTML +=  os.path.join(top, name)

window.findPython = findPython

</script>
È stato utile?

Soluzione

La risposta, attualmente (Venerdì 19 giugno 2009) è sì, è possibile eseguire le discussioni, ma l'altro che il thread principale può accedere oggetti JavaScript, questo include il DOM. quindi se avete intenzione di aggiornare l'interfaccia utente con un'applicazione threading, questo non è possibile ... ancora. Fino a quando il team di Appcelerator crea una sorta di coda al thread principale, possibile tramite un sistema vincolante.

Si prega di consultare la discussione ai Appcelerator forum .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top