C# sen

C# sen

W C Sharp używamy wątku do wykonywania różnych zadań w systemie operacyjnym. Te wątki mogą wykonywać wiele funkcji w zależności od przypisanego zadania. Każde zadanie jest wykonywane w zależności od priorytetu. Następnie przetwarza więcej niż jeden wątek, dzięki czemu procesor jest wielostronny. Tak więc przy priorytecie zadań w zakresie wielowy, używamy metody, która przez pewien czas zawiesza jeden wątek, co odpoczywa na chwilę, aby w tym czasie inne wątki miały szansę na wykonanie pierwszego.

Następnie zawieszone wątki przeprowadziły ten proces. Odbywa się to metodą snu. W C Sharp metoda snu przechodzi bieżące wykonanie wątku dla milisekund określonych w programie. Metodę snu () można zastosować na dwa sposoby.

  • Sen (milisekund);
  • Sen (czasopis);

W tym przewodniku wykorzysta obie metody do wyjaśnienia funkcji Sleep () w gwintowaniu za pomocą C Sharp w systemie operacyjnym Linux.

Składnia

# publiczny sen statyczny (int milisekund);

Zmienna typu int dla milisekund zawiera liczbę w milisekundach, aby zawiesić wątek dla tego określonego czasu.

Podczas inicjowania czasu w milisekundach jako parametru funkcji snu, jeśli wartość argumentu Milliisekund wynosi zero, wątek wywoła inny proces z równym priorytetem, który jest gotowy do wykonania. Jeśli żaden inny wątek nie ma takiego samego priorytetu, wówczas wykonanie pierwszego wątku nie jest zaprzestane i nadal wykonuje.

Przykład 1: Funkcja snu z milisekundami

Jak wiemy, metoda snu dotyczy procesu wielowy. Wątki są ważną częścią naszego systemu operacyjnego, który ma wiele funkcji jednocześnie, wykonując wielozadaniowość. Jak opisano powyżej, funkcja snu pomaga ustalić priorytety zadania, dając trochę odpoczynku do jednego wątku w wielowym. Ta sama koncepcja zostanie wykonana w tym przykładzie. Aby kontynuować przykład, najpierw wyjaśnimy użycie bibliotek. Biblioteka systemowa jest przeznaczona do klas, obiektów i innych typów kontenerów. Podczas gdy system.Gwintowanie to dodatkowa biblioteka, która zostanie zawarta specjalnie dla procesu gwintowania.

# Korzystanie z systemu;
# Korzystanie z systemu.Gwintowanie;

Dwie funkcje są tutaj zadeklarowane z Thread1 () i Thread2 (). Obie funkcje są nietatyczne. Oznacza to, że nie są dziedziczone lub nie mogą być dalej używane w żadnej innej klasie. Innymi słowy, obie funkcje są niezależne. W pierwszej funkcji, Thread1 (), użyliśmy pętli, która będzie iterować tylko dwa razy i wyświetli wiadomość, że Thread1 działa. Wewnątrz pętli stosuje się metodę sleep (). Służy to do zatrzymania pracy wątku przez pewien czas. Zadeklarowaliśmy tę funkcję w 4 sekundy.

Za pomocą metody snu działanie wątku zostanie zajęte przez 4 sekundy.

# Nitka.Sen (4000);

Do tej metody wątku jest dostępny za pośrednictwem samego wątku.

Podobnie deklarowana jest inna funkcja, która jest wątkiem (). Zawiera również pętlę „dla”, aby mogła również iterować dwa razy, a za każdym razem wyświetla wiadomość, że Thread2 działa. Ta metoda jest również metodą niestatyczną. Tam nie będziemy używać funkcji snu w pętli.

Po obu metodach zadeklarujemy główny program. Ponieważ wątki w C Sharp są deklarowane w klasie, obowiązkowe jest utworzenie instancji wątku. Ta instancja obiektu zostanie użyta ponadto do tworzenia wątków. Nazwa klasy zostanie wspomniana.

# Exampleofthread obj = new exampleofThread ();

Metoda zostanie utworzona. Użyjemy tego obiektu do tworzenia wątków, a następnie zainicjowania.

Korzystając z dołączonych dwóch instrukcji, tworzone są obiekty dla wątków. Następnie rozpoczniemy wątki, używając obiektów THR1 i THR2.

# Thr1.początek();
# Thr2.początek();

Teraz zapisz plik. I użyjemy kompilatora do skompilowania powyższego kodu źródłowego. To jest MCS używane do kompilacji w C Sharp. Ponadto, po kompilacji, ma miejsce wykonanie kodu. Mono służy do wykonywania kodu za pomocą .EXE rozszerzenie pliku, dzięki czemu jest wykonywalny.

Plik $ MCS.Cs
$ plik mono.exe

Po wykonaniu kodu widać, że pierwszy i drugi wątek są wykonywane, a pierwszy wątek jest wykonywany później, podczas gdy obiekt pierwszego wątku jest tworzony przed drugim. A pierwszy wątek zaczyna się najpierw, a nie drugi wątek. Wynika to z funkcji snu, której używaliśmy w pierwszej pętli wątku.

Ten program będzie działał, aby po rozpoczęciu pierwszego wątku funkcja snu została zainicjowana, a wątek uśpi przez 4 sekundy. Drugi wątek zostaje wykonany i wyświetla instrukcję 2 razy według pętli. W tym czasie funkcja snu zakończyła czas 4 sekund. Więc teraz zostanie przetworzony i wyświetli instrukcję dwa razy.

Przykład 2: Funkcja snu za pomocą Timespan

W tym przykładzie wykorzystuje czas na kilka sekund. Każda instrukcja wewnątrz funkcji wątku zostanie wykonana z luką w czasie dla określonego okresu. To pokazuje, że wątek śpi przez określony okres. Zobaczmy tę koncepcję, pokazując przykład. W klasie, w programie głównym, najpierw zadeklarujemy wartość limitu czasu w zmiennej. Ta wartość jest deklarowana dynamicznie za pomocą operatora „nowego”. Słowo kluczowe TimeSpan pokazuje, że zmienna limitu czasu jest typu Timespan.

# Timespan Timeout = New Timespan (0, 0, 3);

Użyjemy pętli do iteracji, dopóki iteracja nie osiągnie trzeciego po raz. Pętla wyświetli wiadomość, że wątek śpi przez 3 sekundy. Wewnątrz pętli, użyjemy metody snu TimePan. Ta metoda zostanie wywołana przez wątek i zawiera TimePan jako parametr.

# Nitka.sen (limit czasu);

Instrukcja konsoli wyświetli komunikat, że główny wątek wychodzi poza pętlę.

Po wykonaniu kodu zostanie wyświetlona wiadomość po raz pierwszy. Wtedy nastąpi przerwa na 3 sekundy; Z drugiej strony wyświetlana jest kolejna linia. Podobnie ta linia jest wyświetlana po upływie 3 sekund.

Podczas gdy ostatnia linia jest zadeklarowana poza korpusem pętli, główny wątek pojawi się nagle po trzeciej linii. Nie użyliśmy metody snu Timespan dla tej ostatniej linii.

Wniosek

Metoda snu () w C Sharp służy do zaprzestania procesu przez kilka sekund lub do wykonania procesu po określonej przerwie. To zawieszenie wykonania przez kilka sekund jest dobre do działania wątków w systemie operacyjnym, ponieważ sprawia, że ​​jeden wątek czeka i spoczywa przez pewien czas, aby skutecznie działać. Po drugie, daje to szansę na inne wątki do wykonania w tym przedziale czasowym. Ta metoda snu jest skuteczna w użyciu podczas wielozadaniowości procesora. Obie metody funkcji snu są używane przez milisekundy i przez TimePan.