[英]Progress Meter and XPCOM
我正在開發使用PyXPCOM來運行進程的Firefox擴展。 我希望有一個進度表,該進度表在流程啟動時會顯示出來並向用戶提供反饋。
在javascript中,我調用了線程管理器以在Python中運行進程:
var threadManager = Components.classes["@mozilla.org/thread-manager;1"].getService();
var background = threadManager.newThread(0);
background.dispatch(obj, background.DISPATCH_NORMAL);
所以我想知道是否有一種方法可以檢查線程何時開始工作以及何時完成。 這可以幫助我在javascript中控制進度表!
如果有人對實現進度表有更好的主意,請告訴我:)
謝謝
您不應該直接從JavaScript創建新線程-這存在很多線程安全問題,並且從我所知,Firefox 4中不再提供此功能。替換為chrome worker: https : //developer.mozilla.org/ zh / DOM / ChromeWorker 。 因此,您將像這樣創建您的工作程序:
var worker = new ChromeWorker("script.js");
worker.postMessage(obj);
您還希望接收來自工作人員的消息(例如進度通知)。
worker.onmessage = function(event)
{
if (event.data.type == "progress")
alert("Worker progress: " + event.data.value);
else if (event.data.type == "done")
alert("Worker done!");
}
工作者本身當然需要通過postMessage
函數向您發送進度通知,例如:
postMessage({type: "progress", value: done/total*100});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.