diff options
author | Alan Alpert <alan.alpert@nokia.com> | 2012-03-19 15:34:28 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-20 05:37:59 +0100 |
commit | 61b2c9198dd757519e8afc21d29f469bb8bc8aa8 (patch) | |
tree | 41bda747e5729b10b30d27d010ae65bb4915acd9 /examples/quick/threading/workerscript/workerscript.js | |
parent | 760d0ac29ea00547f9826ec00e9445caccecd40b (diff) |
Rewrite workerscript example
Clearer function, arguable justification for using WorkerScript, and
fits better into the standrad form factor.
Change-Id: I3f29f19961a12adc29b260b3284eb620ad63bf45
Reviewed-by: Chris Adams <christopher.adams@nokia.com>
Diffstat (limited to 'examples/quick/threading/workerscript/workerscript.js')
-rw-r--r-- | examples/quick/threading/workerscript/workerscript.js | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/examples/quick/threading/workerscript/workerscript.js b/examples/quick/threading/workerscript/workerscript.js index f76471f920..ada3d82589 100644 --- a/examples/quick/threading/workerscript/workerscript.js +++ b/examples/quick/threading/workerscript/workerscript.js @@ -1,15 +1,24 @@ -var lastx = 0; -var lasty = 0; +//Will be initialized when WorkerScript{} is instantiated +var cache = new Array(64); +for (var i = 0; i < 64; i++) + cache[i] = new Array(64); -WorkerScript.onMessage = function(message) { - var ydiff = message.y - lasty; - var xdiff = message.x - lastx; - - var total = Math.sqrt(ydiff * ydiff + xdiff * xdiff); - - lastx = message.x; - lasty = message.y; +function triangle(row, column) { + if (cache[row][column]) + return cache[row][column] + if (column < 0 || column > row) + return -1; + if (column == 0 || column == row) + return 1; + return triangle(row-1, column-1) + triangle(row-1, column); +} - WorkerScript.sendMessage( {xmove: xdiff, ymove: ydiff, move: total} ); +WorkerScript.onMessage = function(message) { + //Calculate result (may take a while, using a naive algorithm) + var calculatedResult = triangle(message.row, message.column); + //Send result back to main thread + WorkerScript.sendMessage( { row: message.row, + column: message.column, + result: calculatedResult} ); } |