In C Sharp, utilizziamo il thread per svolgere diverse attività nel sistema operativo. Questi thread possono svolgere molte funzioni a seconda dell'attività che abbiamo assegnato. Ogni attività viene eseguita in base alla base prioritaria. In un momento, più di un thread sta elaborando, rendendo il processore multithread. Quindi, mentre dà la priorità alle attività in Multithreading, utilizziamo un metodo che sospende temporaneamente un thread per un po 'di tempo, facendolo riposare per un po', in modo che in quel momento, altri thread abbiano la possibilità di eseguire prima.
Successivamente, quei fili sospesi hanno effettuato il processo. Questo viene fatto attraverso un metodo di sonno. In C Sharp, il metodo di sonno prende l'attuale esecuzione del thread per millisecondi specificati nel programma. Un metodo sleep () può essere usato in due modi.
Questa guida utilizzerà entrambi i metodi per spiegare la funzione Concept of Sleep () nel threading usando C Sharp nel sistema operativo Linux.
Sintassi
# Sleep statico pubblico (int millisecondi);La variabile del tipo int per millisecondi contiene un numero in millisecondi per sospendere il thread per quel tempo specificato.
Durante l'inizializzazione del tempo in millisecondi come parametro per la funzione di sonno, se il valore dell'argomento del millisecondo è zero, il thread chiamerà un altro processo con la pari priorità pronta per essere eseguita. Se nessun altro thread ha la stessa priorità, l'esecuzione del primo thread non viene cessata e continua a eseguire.
Esempio 1: funzione del sonno con millisecondi
Come sappiamo, il metodo del sonno riguarda il processo multithreading. I thread sono una parte importante del nostro sistema operativo che svolge molte funzioni alla volta, eseguendo il multitasking. Come descritto sopra, la funzione di sonno aiuta a dare la priorità all'attività dando un po 'di riposo a un thread in multithreading. Lo stesso concetto verrà eseguito in questo esempio. Per continuare con l'esempio, spiegheremo prima l'uso delle biblioteche. La libreria di sistema è per le classi, gli oggetti e altri tipi di contenitori. Mentre il sistema.Il threading è una libreria aggiuntiva che verrà inclusa specificamente per il processo di threading.
# Usando il sistema;Due funzioni sono dichiarate qui con thread1 () e thread2 (). Entrambe le funzioni sono non statiche. Ciò significa che non sono ereditati o non possono essere ulteriormente utilizzati in nessun'altra classe. In altre parole, entrambe le funzioni sono indipendenti. All'interno della prima funzione, thread1 (), abbiamo usato un ciclo per iterare solo due volte e visualizzerà il messaggio che thread1 funziona. All'interno del loop, viene utilizzato il metodo Sleep (). Questo viene usato per mettere in pausa il funzionamento del thread per un po 'di tempo. Abbiamo dichiarato questa funzione in 4 secondi.
Quindi, usando il metodo di sonno, il lavoro del thread verrà sequestrato per 4 secondi.
# Filo.Sonno (4000);Questo metodo thread si accede tramite il thread stesso.
Allo stesso modo, viene dichiarata un'altra funzione, che è un thread (). Questo contiene anche un ciclo "per" in modo che possa anche iterare due volte e ogni volta visualizzerà il messaggio che thread2 funziona. Questo metodo è anche un metodo non statico. Lì non useremo la funzione di sonno all'interno del loop.
Dopo entrambi i metodi, dichiarare il programma principale. Poiché i thread in C Sharp sono dichiarati in classe, è obbligatorio creare l'istanza del thread. Tale istanza dell'oggetto verrà utilizzata nella creazione dei thread inoltre. Il nome della classe verrà menzionato.
# EsempiofThread obj = new ExexofThread ();Verrà creato il metodo MyThread. Useremo questo oggetto per creare i thread e quindi inizializzarli.
Utilizzando due istruzioni aggiunte, vengono creati gli oggetti per i thread. Successivamente, inizieremo i thread usando gli oggetti Thr1 e Thr2.
# Thr1.inizio();Ora salva il file. E useremo un compilatore per compilare il codice sorgente sopra. Questo è MCS utilizzato per la compilation in C Sharp. Inoltre, dopo la compilation, ha luogo l'esecuzione del codice. Mono viene utilizzato per eseguire il codice con il .estensione exe del file, rendendolo eseguibile.
File $ MCS.csDurante l'esecuzione del codice, è possibile vedere che il primo e il secondo thread vengono eseguiti e il primo thread viene eseguito in seguito, mentre l'oggetto del primo thread viene creato prima del secondo. E il primo thread inizia prima anziché il secondo thread. Ciò è dovuto alla funzione del sonno che abbiamo usato nel primo loop di thread.
Questo programma funzionerà in modo che quando il primo thread viene chiamato per iniziare, la funzione di sonno viene inizializzata e il thread va a dormire per 4 secondi. Il secondo thread viene eseguito e visualizza l'istruzione 2 volte in base al loop. Durante questo periodo, la funzione del sonno ha completato il suo tempo di 4 secondi. Quindi ora verrà elaborato e visualizzerà l'istruzione due volte.
Esempio 2: funzione del sonno usando Timepan
Questo esempio usa un tempo di alcuni secondi. Ogni istruzione all'interno della funzione thread verrà eseguita con uno spazio nel tempo per il periodo specificato. Questo ci mostra che il thread dorme per un periodo specifico. Vediamo questo concetto dimostrando un esempio. All'interno della classe, nel programma principale, dichiareremo prima il valore del timeout nella variabile. Questo valore viene dichiarato dinamicamente utilizzando il "nuovo" operatore. La parola chiave Timespan mostra che la variabile timeout è di tipo TimeSpan.
# Timeout Timespan = new Timespan (0, 0, 3);Useremo un ciclo per iterare fino a quando l'iterazione raggiunge la terza volta. Il ciclo visualizzerà il messaggio che il thread dorme per 3 secondi. All'interno del ciclo per, useremo il metodo del sonno di tempo. Questo metodo verrà chiamato attraverso il thread e conterrà il tempo come parametro.
# Filo.sonno (timeout);Un'istruzione console visualizzerà il messaggio che il thread principale esce fuori dal loop.
Quando eseguiamo il codice, verrà visualizzato il messaggio per la prima volta. Quindi ci sarà una pausa di 3 secondi; Poi di nuovo, viene visualizzata un'altra riga. Allo stesso modo, questa riga viene visualizzata dopo che sono passati 3 secondi.
Mentre l'ultima riga è dichiarata al di fuori del corpo del loop, il filo principale apparirà bruscamente dopo la terza linea. Non abbiamo usato il metodo del sonno per quest'ultima riga.
Conclusione
Il metodo Sleep () in C Sharp viene utilizzato per cessare il processo per alcuni secondi o per eseguire il processo dopo una pausa specificata. Questa sospensione di esecuzione per alcuni secondi è buona per il funzionamento dei thread nel sistema operativo, in quanto fa aspettare un thread e poggia per un po 'di tempo per lavorare in seguito in modo efficace. In secondo luogo, dà la possibilità agli altri thread di essere eseguiti in questo intervallo di tempo. Questo metodo di sonno è efficace da usare mentre la CPU è multitasking. Entrambi i metodi per la funzione del sonno vengono utilizzati attraverso i millisecondi e attraverso il Timepan.