C# multithreading

C# multithreading
Si dice che un thread sia un processo leggero, attività o percorso di esecuzione di qualsiasi codice o programma. I thread vengono utilizzati per eseguire un'attività o un lavoro specifici e avere il loro controllo. Il concetto di multithreading arriva quando dividiamo un grande thread in piccoli thread per farli eseguire contemporaneamente. In questo modo, il carico di lavoro può essere gestito e la complessità può essere evitata. All'interno della programmazione C#, ci è stato fornito il "sistema.Filo.Classe thread "per eseguire il multithreading utilizzando le sue funzioni utili. Questo articolo è per ogni utente C# che non ha esperienza in Multithreading e vuole imparare le sue basi. Iniziamo ora.

Esempio # 01: il thread principale

È possibile verificare per la directory di lavoro corrente per cercare il tuo file di recente generazione. Apri il tuo nuovo file C# in uno qualsiasi degli editori disponibili dal tuo Ubuntu 20.04 Sistema. L'abbiamo aperto all'interno dell'editor del "testo", in quanto è molto conveniente da usare per i principianti e per gli esperti. Come suggerisce l'argomento, discuteremo del concetto di multithreading. Quando creiamo un oggetto della classe "thread", creiamo un thread figlio del thread attualmente in esecuzione. Se si desidera utilizzare l'oggetto per specificare il nome di un thread genitore, è necessario utilizzare la proprietà "CurrentThread" della classe thread.

Quindi, entro il nostro primo esempio, esamineremo la proprietà "corrente" della classe thread di C#. Stiamo iniziando il nostro primo codice di esempio con l'inizializzazione della libreria e del sistema "Sistema".Classe di threading ". Abbiamo creato uno spazio dei nomi chiamato "multithread" e creato un "threading" di classe in esso. La funzione principale () di questa classe è stata avviata con l'inizializzazione dell'oggetto di classe "thread" durante l'utilizzo della proprietà "CurrentThread". Ora, l'oggetto punta verso il thread genitore.

Abbiamo usato l'oggetto thread genitore "t" per chiamare la proprietà "nome" della classe thread per ottenere il nome di un thread corrente i.e. il thread principale (). Gli abbiamo dato il nome "principale" secondo il codice seguente. La funzione WriteLine () dalla classe console viene utilizzata per visualizzare il nome di un thread genitore sulla schermata del nostro terminale chiamando la proprietà "Nome" con l'oggetto "T" della classe thread.

Il primo passo dopo aver salvato il nostro codice è compilare il codice C#. Per questo, il tuo sistema deve avere il compilatore C# "MCS" integrato. Dopo aver compilato questo file con "MCS", il file "exe" del codice verrà generato automaticamente nella directory di lavoro corrente di Ubuntu 20.04. Dobbiamo utilizzare questo file "exe" per eseguire il codice con l'istruzione di runtime "mono" per C#. Dopo averlo eseguito, abbiamo scoperto che il thread "principale" è in esecuzione.

Esempio # 02: crea un thread figlio

Diamo un'occhiata alla creazione di un nuovo thread usando una funzione dati "non statica" nel codice. Per questo, abbiamo usato la stessa struttura di un codice C# I.e. l'uso della libreria "Sistema" e "Sistema.Classe di threading ". Abbiamo creato due classi i.e. MyThread e nuovo. L'esecuzione di questo codice verrà avviata dalla nuova classe in quanto contiene il thread di funzione principale (). La console.Le dichiarazioni WriteLine () ci mostreranno che la funzione principale () è in esecuzione.

Dopodiché, è stato creato l'oggetto "T1" di una classe "MyThread". Questa creazione di oggetti non significa che abbiamo creato un oggetto thread. Questo oggetto viene utilizzato per chiamare le funzioni di classe MyThread. L'oggetto della classe thread "T" è stato creato per creare un nuovo thread. Mentre la proprietà threadstart di questa classe thread è stata utilizzata per avviare la funzione "threading" dalla classe "mythread" come nuovo thread.

L'oggetto "T1" sta chiamando la sua funzione nei parametri della funzione "threadstart" come inizio in un nuovo thread. È necessario utilizzare l'oggetto "T" per chiamare la funzione "Start" della classe thread per avviare l'esecuzione di un nuovo thread. Quindi, verrà eseguita la funzione threading () della classe MyThread. È per loop verrà eseguito 5 volte, visualizzando che la funzione thread è in esecuzione. Il codice è ora completato. Vediamo come funziona.

Dopo aver compilato ed eseguito i nostri file C# "CS" e "EXE", abbiamo ottenuto l'output a testa. Il thread figlio della classe "MyThread" è stato eseguito 5 volte, secondo il loop "per".

Esempio # 03: più di un thread

L'esempio sopra riguardava la creazione di un singolo thread. All'interno di questo esempio, discuteremo l'uso di funzioni statiche per creare più di 1 thread figlio nel programma. Quindi, abbiamo creato due classi con gli stessi nomi i.e. MyThread e nuovo. La nuova classe contiene l'unico metodo principale () che viene utilizzato per creare due oggetti T1 e T2 per la classe thread per creare nuovi thread figlio.

Questi oggetti hanno utilizzato le funzioni di threading1 () e thread2 () della classe MyThread per crearli come nuovi thread per bambini. La funzione "start ()" della classe thread è stata utilizzata per avviare la funzione threading1 () e threading2 () utilizzando gli oggetti thread T1 e T2. Poiché entrambe le funzioni del thread sono statiche, il secondo thread non può essere avviato fino a quando il primo non ha completato la sua esecuzione. Entrambi i thread hanno eseguito le loro istruzioni 3 volte e il codice verrà terminato.

Dopo aver eseguito questo codice compilato, l'output mostra l'esecuzione di entrambi i thread separatamente.

Esempio # 04: Abort Thread

La classe thread ha la funzione abort () per terminare i thread. Utilizza threadabortexecption per eseguire la terminazione. Diamo un'occhiata a questo creando due classi, MyThread e New. La funzione principale () è iniziata con la creazione di "T" dell'oggetto per la classe MyThread con il suo nome "Thread".

Il costruttore della classe MyThread ha iniziato a eseguire e inizializzava un nuovo thread figlio con l'oggetto "T1" della classe thread usando la funzione "startthread" nei suoi parametri. Il nome è stato assegnato alla proprietà del nome e il thread è iniziato. Le funzioni del thread "startThread" iniziano con un'istruzione "Try-Catch". L'istruzione "Try" continuerà a funzionare fino a quando il modulo di un valore nel suo ciclo di 7 è uguale a 0. Dove si verifica l'eccezione, l'affermazione catch () lancerà l'eccezione.

Dopo aver eseguito questo codice, abbiamo eseguito il thread fino al valore 49 e terminato al codice 300. Il thread è stato interrotto a causa dell'istruzione "if" e della console.Dichiarazione WriteLine () prima che la dichiarazione di catch ().

Conclusione

Questa guida è un must per ogni utente C# che desidera imparare le basi di Multithreading. Abbiamo spiegato a fondo l'uso della classe thread in C#, per creare thread e nominarli con il thread corrente e la proprietà "Nome". Abbiamo discusso dell'uso della creazione di oggetti di classe "thread" per creare un singolo thread o più thread alla volta e avviarli con la funzione "start" della classe thread. Abbiamo anche visto come utilizzare la funzione Abort () nel codice C# per terminare un thread con l'aiuto di un'istruzione Try Catch nel codice.