import kotlinx.coroutines.* sitisha uzinduzi wa kufurahisha(delayMillis: Long) {println(“START kazi $delayMillis”) delay(delayMillis) println(“END launchTask $delayMillis”) } fun main() = runBlocking { println(“start main “) wigo wa wastani = CoroutineScope(Dispatchers.Default) scope.launch { launchTask(10000) } scope.launch { launchTask(500) } // Ghairi taratibu zote katika mawanda baada ya kuchelewa kwa sekunde 2(2000) scope.cancel() println(“end main”) } Hapa tunaunda kwa uwazi a CoroutineScope na uitumie kuzindua simu zetu mbili za utendakazi zilizosimamishwa, tena kwa kutumia chaguo-msingi mtumaji. Kwa kushughulikia kwa upeo, tunaweza kuanza kazi zetu na kisha kuzighairi kwa scope.cancel(). Kumbuka kwamba tuna kazi mbili, moja yenye kuchelewa kwa milisekunde 10,000. Kwa sababu tunaghairi baada ya milisekunde 2,000, tunapata matokeo yafuatayo: anza kazi kuu ya START 500 START kazi 10000 MALIZA uzinduziTask 500 mwisho mkuu Kwa hivyo, kazi ya milisekunde 10,000 ilianzishwa lakini haikukamilika. Badala yake, ilighairiwa pamoja na wigo wake uliofungwa. Kwa kiwango kingine cha kisasa, tunaweza kuongeza kizuizi cha withTimeout:
Leave a Reply