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.