‫Bentornato e l'ultima parola.
‫Hai visto come utilizzare le minacce e come impostare le minacce e avviarle semplicemente.
‫E in questo video, daremo un'occhiata al completamento.
‫Quindi vogliamo usare un thread per fare qualcosa.
‫E solo se viene svolto un compito specifico, allora vogliamo andare avanti.
‫Quindi diamo un'occhiata a questo.
‫Creerò una nuova variabile chiamata Task Completion Source, e quindi ho bisogno di una nuova attività, una fonte di
‫completamento e un booleano.
‫Quindi, come puoi vedere, si lamenta perché non sa quale sia questa fonte di completamento dell'attività.
‫E per risolverlo, ho bisogno di utilizzare le attività di threading del sistema.
‫Quindi lo farò per un secondo e poi sentirò che cosa farò dopo è che creerò solo una variabile
‫di test.
‫Chiamerò semplicemente un'attività, che è un'origine di completamento dell'attività, oppure chiameremo semplicemente questa origine di completamento
‫dell'attività.
‫E abbiamo detto che è compito dei risultati.
‫Quindi vogliamo avere il risultato di quel compito.
‫Quindi diciamo che c'era un'attività specifica che dovrebbe essere eseguita e fare qualcosa e quindi vogliamo vedere i
‫risultati.
‫Quindi, se ha funzionato o non ha funzionato e per testarlo, mi libererò di questa linea rossa qui.
‫Quindi eseguirò il codice come se non ci fosse nient'altro in questo metodo principale, solo questo codice qui.
‫Quindi ho intenzione di eseguirlo.
‫E come puoi vedere, non succede nulla.
‫Quindi la console viene mantenuta attiva o aperta, anche se non abbiamo questa linea rossa della
‫console, che di solito usiamo sempre se vogliamo mantenere la console aperta, significa che c'è qualcosa che non è finito.
‫Quindi questo qui non è mai effettivamente finito perché non ci sono risultati.
‫Quindi questa fonte di completamento non è mai effettivamente completa.
‫Quindi non è mai impostato su vero.
‫Ed è qualcosa che possiamo fare manualmente.
‫Quindi diciamo che abbiamo un compito e vogliamo avere il risultato come lo abbiamo qui, ma in realtà vogliamo finire il compito
‫a un certo punto.
‫Quindi cosa dobbiamo fare per questo è creare un thread.
‫Quindi creerò un thread
‫più grande uguale a un nuovo thread e quel thread non verrà avviato immediatamente.
‫Quindi sto usando un approccio leggermente diverso da quello che abbiamo fatto qui.
‫Quindi qui abbiamo appena detto nuovo thread e poi abbiamo avuto il corpo del thread.
‫Quindi il codice che dovrebbe essere eseguito ogni volta che questo thread viene avviato e abbiamo iniziato subito,
‫abbiamo iniziato subito.
‫Ma qui creiamo solo il thread e possiamo farci cose in seguito.
‫Quindi qui dirò solo il sonno del filo.
‫Quindi dormi per, diciamo, 1000 millisecondi e poi prova a impostare l'origine del completamento dell'attività
‫su true.
‫Quindi prova a impostare il risultato che farà è tentare di trasferire l'attività sottostante nelle attività che vengono eseguite allo stato di
‫completamento, il che significa che è stata eseguita.
‫Destra.
‫Quindi proverà a dire che è vero.
‫Quindi ciò significa che questa origine di completamento dell'attività sarà impostata su true e solo allora arriveremo a questo punto,
‫che è il risultato di quell'attività.
‫Quindi creiamo un piccolo passaggio qui, quindi Dybbuk Step e il check, gli ID delle minacce, e ora per avviare
‫una minaccia, dobbiamo effettivamente chiamare il thread che inizia.
‫E come puoi vedere, questo oggetto thread qui, che è un thread che farà tutto questo, verrà
‫avviato.
‫Quindi aprirò un thread come questo.
‫E già che ci siamo, diamo un'occhiata a cosa ha da offrire il thread.
‫Quindi, ogni volta che crei un oggetto thread, ci sono più proprietà e metodi da usare o possiamo usarne
‫più qui.
‫Quindi puoi vedere che una scheda è quella in cui puoi interrompere il thread in modo da poter interrompere il thread,
‫ma ciò eseguirà un'eccezione o causerà un'eccezione.
‫Quindi è molto pericoloso farlo in realtà.
‫Quindi puoi mandare in crash la tua applicazione con quella in base a quanto siamo sicuri, costruiscila.
‫Ma una scheda è qualcosa che puoi, ovviamente, usare per fermare un thread, ma non sai mai quanto è lontana
‫e la sua esecuzione.
‫Quindi può succedere che non riesca a svolgere bene i compiti che volevi svolgere.
‫E questo costerà, beh, al tuo problema che non funziona correttamente.
‫E poi, ovviamente, ci sono molti altri metodi che sono piuttosto interessanti, come le proprietà delle parole come questa sono vive,
‫il che significa che questa minaccia è attualmente attiva e poi il suo background, il che significa che possiamo dire
‫che un thread dovrebbe essere eseguito in background e possiamo verificare con questa proprietà, se è in background
‫o meno è una minaccia di pool di minacce.
‫È qualcosa che controlleremo più avanti.
‫Quindi cos'è un pool di minacce?
‫Questo è quello che vedremo più avanti e così via.
‫Quindi questo è Menaged Threat ID è qualcosa di piuttosto interessante, che ci parlerà dell'idea della minaccia
‫che stiamo attualmente correndo.
‫Quindi usiamo quello.
‫Stampiamolo sulla console.
‫Quindi CW e io userò il thread no come questo.
‫Quindi usi il simbolo del dollaro e poi hai il numero della minaccia o l'ID della minaccia in modo da poterlo chiamare.
‫E poi tra parentesi graffe hai usato per thread id menaged così.
‫Thread gestito da thread, Edem e, naturalmente, è necessario chiudere una stringa.
‫Va bene, ora proviamolo.
‫Eseguiamo il codice.
‫E abbiamo la nostra minaccia principale, e finora abbiamo qualcosa sulla console, come puoi vedere, il numero
‫della minaccia è tre.
‫Quindi il numero di questa minaccia che abbiamo qui che abbiamo creato noi stessi è in realtà tre.
‫E la principale minaccia è l'ID gestito è uno.
‫Quindi, come puoi vedere, i numeri in realtà non devono essere nel modo in cui ti aspetteresti.
‫Quindi, anche se non abbiamo creato la nostra minaccia aggiuntiva qui, va da uno a tre.
‫Quindi devono esserci altre minacce in esecuzione che non vediamo qui.
‫Tutto bene.
‫E a proposito, se vuoi vedere se il thread è iniziato e finito, puoi fare quanto segue.
‫Quindi tagliamolo qui e mettiamolo in questa riga qui e in realtà, diciamo che è iniziato.
‫E qui non possiamo usare thread perché thread è questo thread che creiamo qui.
‫Ma se vogliamo usarlo qui all'interno del corpo del thread stesso e dobbiamo usare il thread corrente del punto
‫thread.
‫Quindi, se lo facciamo ora, avremo il thread in cui ci troviamo attualmente, che è esattamente quello.
‫E qui diciamo che è iniziato e dopo che è finito, diciamo che è finito e ora eseguiamolo.
‫Per eseguire il codice e come puoi vedere, sulla console non viene visualizzato nulla.
‫Andiamo al passaggio successivo.
‫E poi è iniziato e finito, quindi è successo abbastanza velocemente, ma come puoi vedere, ce ne sono quindi diamo un po'
‫più di tempo.
‫Modifichiamolo in cinque secondi.
‫E liberiamoci anche di questo punto Dybbuk qui ed eseguiamolo.
‫Quindi la minaccia numero tre è iniziata e poi ci è voluto un po' ed è finita.
‫Quindi ora vedi che questa riga di codice viene effettivamente eseguita correttamente e semplicemente interrompe la nostra console.
‫Quindi facciamo leggere alla console una riga per mantenere la console aperta.
‫Quindi la minaccia numero tre è iniziata e poi cinque secondi dopo dovrebbe finire così che la minaccia numero tre
‫è terminata.
‫Ora, diciamo che vogliamo vedere se l'attività ha effettivamente funzionato, quindi se ha funzionato per impostarla su true o
‫no?
‫Beh, lo sappiamo perché altrimenti non arriveremmo al passaggio successivo.
‫Ma usiamo la riga di destra della console qui.
‫Il compito è stato svolto.
‫E qui scrivi semplicemente il risultato, che sarà il test.
‫Quindi il test è solo un toro, come puoi vedere qui, perché o ha funzionato o non ha funzionato, quindi il risultato
‫è vero o falso.
‫Quindi diamo un'occhiata.
‫E ora dobbiamo aspettare cinque secondi.
‫Il numero tre è iniziato cinque secondi e poi il numero tre è terminato e dice che l'attività è stata eseguita è uguale a
‫vero.
‫Quindi è quello che sta succedendo qui con questa linea.
‫Quindi dice semplicemente che è fatto con questo compito specifico.
‫Bene, quindi in questo video, hai visto come puoi usare la fonte di completamento
‫dell'attività, che indica se un'attività è stata eseguita o meno, puoi inviarla a Drew o può semplicemente fare qualcosa ed
‫essere completata dopo un po' anche in modo che puoi creare un thread in un modo diverso, quindi
‫puoi effettivamente creare una variabile thread, che devi poi iniziare, ovviamente, e puoi semplicemente usare come un oggetto del thread della
‫classe.
‫E poi abbiamo visto come possiamo usare il thread I. D. quindi conosciamo l'idea di quella specifica minaccia.
‫Ed è qualcosa che esamineremo un po' di più nel prossimo
‫video, in cui creiamo più thread contemporaneamente e vedremo come verrà gestito dalla nostra macchina.
‫Allora ci vediamo al prossimo video.