Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# listener dans un thread

Envoyé par : skowalski

Date : 03/12/2009 16:04

Bonjour à tous,

Dans une extension de Thunderbird, je lance un thread qui sauvegarde des messages.

Des fonctions de ce thread font appel à des listener.

Le code fonctionnait sans thread ( mais freeze de TB ) mais ne fonctionne plus avec le thread. Il n'y a pas de message d'erreur et le listener n'est pas exécuté.

La structure du thread ressemble à çà:

Au niveau de la fenêtre principale de TB,

VariableGlobale.sauvegarde = function () {
 var aThread = null;
 var saveThread = function () {};
 saveThread.prototype = new myThread(); // Structure d'un thread
 saveThread.prototype.execute = function () {
     listener               = this.myUrlListener();
     listener.parent        = this;
     listener.folderLabel   = this.folderLabel;
     listener.fromMsgFolder = fromMsgFolder;
     listener.toMsgFolder   = toMsgFolder;
     fromMsgFolder.downloadAllForOffline(listener, msgWindow);
}
saveThread.prototype.myUrlListener = function () {
    var listener = {
        parent         : null,
        folderLabel    : null, 
        fromMsgFolder  : null, 
        toMsgFolder    : null,
        QueryInterface : function(iid)  {
      	     if (iid.equals(Components.interfaces.nsIUrlListener) ||
      		iid.equals(Components.interfaces.nsISupports))
      		return this;
      		throw Components.results.NS_NOINTERFACE;
      		return 0;
      	 },
      	 OnStartRunningUrl: function (url) { },
      	 OnStopRunningUrl : function (url, exitCode) {
      	     this.parent.getMessages(this.fromMsgFolder, this.toMsgFolder, this.folderLabel);
        }
    }
    return listener;
 };
 aThread = new saveThread();
 aThread.start();
}

Merci pour votre aide, Stéphane.

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.