multithreading - एडोब एयर एएस 3: श्रमिकों में एक समारोह को कैसे चलाया जाता है-बहु-कृत्यों(श्रमिकों द्वारा)



actionscript-3 flash (1)

मेरे पास एक भारी फ़ंक्शन है जो मुख्य समयरेखा में निष्पादित होने योग्य नहीं है (क्योंकि यह पूरा करने के लिए लंबा समय लगता है और प्रोग्राम को क्रैश करता है)। इसलिए मैंने एयर (ए 3) में मल्टीथ्रेडिंग के लिए खोज की थी लेकिन मैंने जो भी उदाहरण पाया है, वह बताता है कि श्रमिकों में अलग एसडब्ल्यूएफ फ़ाइलों को कैसे चलाया जाए। मैं एक कार्यकर्ता (थ्रेड) में एक फ़ंक्शन कैसे चला सकता हूं?


आधिकारिक वर्कर दस्तावेज़ ( http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/system/Worker.html ): प्रत्येक अतिरिक्त कार्यकर्ता एक अलग एसडीएफ से बनाया गया है

इस प्रकार, आप या तो अपने भारी कोड को एक अतिरिक्त एसडब्ल्यूएफ के रूप में व्यवस्थित करने के लिए या इसे रिफैक्टर के रूप में व्यवस्थित करने के लिए कर सकते हैं ताकि आप इसे रोक और पुनः शुरू कर सकें और कई फ्रेम्स (ENTER_FRAME घटनाओं, समयरेखा फ़्रेमों, ऑफलाइन नहीं) के साथ अपने निष्पादन का विस्तार कर सकें।

पीएस बहुत ही प्रलेखन पृष्ठ पर मुख्य श्रमिकों को दो श्रमिकों में चलाने का एक तरीका है ताकि आप इसे आवेदन और कार्यकर्ता आवेदन को नियंत्रित करने के लिए आगे बढ़ सकें।

 // The primordial worker's main class constructor
 public function PrimordialWorkerClass()
 {
   init();
 }

 private function init():void
 {
   var swfBytes:ByteArray = this.loaderInfo.bytes;

   // Check to see if this is the primordial worker
   if (Worker.current.isPrimordial)    
   {
     // create a background worker
     var bgWorker:Worker = WorkerDomain.current.createWorker(swfBytes);

     // listen for worker state changes to know when the worker is running
     bgWorker.addEventListener(Event.WORKER_STATE, workerStateHandler);

     // set up communication between workers using 
     // setSharedProperty(), createMessageChannel(), etc.
     // ... (not shown)

     bgWorker.start();
   }
   else // entry point for the background worker
   {
     // set up communication between workers using getSharedProperty()
     // ... (not shown)

     // start the background work
   }
 }




adobe