.NET 4 ietver jaunu nosaukumvietu System.Threading.Tasks, kas satur klases, kas abstrahē pavedienu funkcionalitāti. Izmantojiet ThreadPool fonā. Uzdevums ir vienības darbs, kas jāpabeidz. Šīs vienības darbu var palaist atsevišķā pavedienā vai uzdevumu var sākt sinhroni, kas prasa gaidīt galveno regulēšanas pavedienu. Uzdevumu izmantošana ne tikai nodrošina abstrakcijas slāni, bet arī lielu kontroli pār pamatā esošajiem pavedieniem. Uzdevumi piedāvā lielu elastību, plānojot veicamo darbu. Piemēram, varat definēt nepārtrauktu uzdevumu — kāds darbs jāveic pēc uzdevuma pabeigšanas. Tas var atšķirt veiksmīgu uzdevumu un nē. Turklāt uzdevumus var sakārtot hierarhijā. Piemēram, vecākuzdevums var izveidot jaunu bērnuzdevumu. Tādējādi tiek izveidota atkarība, tādēļ, atceļot vecākuzdevumu, tiks atcelts arī tā pakārtotais uzdevums.
Mūsdienās ir populāri izmantot uzdevumu izpildes metodes, un tas ir augstas veiktspējas, un es nezinu, kur ir uzdevuma izpilde.
Es pats pārbaudīju uzdevumu un pavedienu, un es uzskatu, ka uzdevums ir ļoti lēns, kas ievērojami ietekmē veiktspēju, un testa kods ir šāds:
Mēs cilpinām metodi 1000 reizes, un pēc tam metode bloķē 100 milisekundes, un testa rezultāts ir šāds:
Rezultātu:
Pavedienu izpilde aizņem 188 milisekundes
Uzdevuma izpilde aizņem 14 671 milisekundes
Ātruma starpība starp abiem ir 78 reizes!!
Uzdevums ir ļoti lēns, nezinu, kāpēc tas notiek, vai kaut kas nav kārtībā ar manu testa kodu vai ko? Es ceru, ka jūs varat paskaidrot, kāpēc tas notiek ...
|