>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >приоритеты http://forum.mozilla-russia.org/viewtopic.php?id=13056 |
Dark-Demon > 12-10-2006 16:18:24 |
можно ли запустить скрипт отдельным потоком и указать ему приоритет? |
Anton > 12-10-2006 17:34:21 |
Dark-Demon пишет
Отдельным - можно, поищи пример на xpoint. А приоритет - это вряд ли. |
Dark-Demon > 12-10-2006 17:47:26 |
Anton, во всяком случае для с-кода точно можно: http://xulplanet.com/references/xpcomref/ifaces/nsISupportsPriority.html Добавлено Чтв 12 Окт 2006 17:58:59 : |
Anton > 25-01-2007 20:02:03 |
кстати, можно: Выделить код Код:function LOG(text) { var consoleService = Components. classes["@mozilla.org/consoleservice;1"]. getService(Components. interfaces. nsIConsoleService); consoleService. logStringMessage (text); } var x = 0; var ti = Components. classes ["@mozilla.org/thread;1"]. createInstance (Components. interfaces. nsIThread); var thread = { run: function () { while (x < 10) { try { LOG ("thread: " + x); x++; ti. sleep (1000); } catch (e) {} } } } ti. init (thread, 1000, 0, 1, 1); нолик - приоритет (PRIORITY_LOW) |
Dark-Demon > 26-01-2007 02:21:16 |
тогда шаг номер два - заставить все скрипты со страниц в других вкладках работать с пониженным приоритетом, а в текущей - снормальным. |
Anton > 26-01-2007 18:54:34 |
поток на самом деле всё же один Выделить код Код:function LOG(text) { var consoleService = Components. classes["@mozilla.org/consoleservice;1"]. getService(Components. interfaces. nsIConsoleService); consoleService. logStringMessage(text); } var ti1 = Components. classes ["@mozilla.org/thread;1"]. createInstance (Components. interfaces. nsIThread); var ti2 = Components. classes ["@mozilla.org/thread;1"]. createInstance (Components. interfaces. nsIThread); function thread (id, x, y, ti) { this. id = id; this. x = x; this. y = y; this. ti = ti; } thread. prototype = { id: 0, x: 0, y: 0, ti: null, run: function () { while (this. x < this. y) { LOG ("thread " + this. id + ": " + this. x); this. x++; //this. ti. sleep (1000); } } } var thread1 = new thread (1, 100, 200, ti1); var thread2 = new thread (2, 200, 300, ti2); ti1. init (thread1, 1000, 0, 1, 1); ti2. init (thread2, 1000, 0, 1, 1); for (var i = 300; i < 400; i++) LOG ("main program: " + i); |
Dark-Demon > 26-01-2007 22:20:16 |
то есть можно терять надежду? |