Question

Je ne l'ai jamais en Python avant programmé, donc excuser mon code. J'ai ce script qui sera exécuté dans un terminal, mais je ne peux pas l'obtenir pour fonctionner côté client. Je courais ce dans l'application de titane Appcelerator. Quoi qu'il en soit, je suis dépannage et il semble qu'il ne fonctionne pas les fils du tout. Est-ce une limitation? personne ne sait?

<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>
Était-ce utile?

La solution

La réponse, actuellement (vendredi, du 19ème Juin, 2009) est oui, il peut exécuter des threads, mais rien d'autre que le thread principal peut accéder à des objets JavaScript, ce qui inclut les DOM. donc si vous avez décidé de mettre à jour l'interface utilisateur avec une application de filetage, ce n'est pas possible ... PAS ENCORE. Jusqu'à ce que l'équipe Appcelerator crée une sorte de file d'attente pour le thread principal, possible via un système de liaison.

S'il vous plaît voir la discussion sur les forums Appcelerator .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top