Heim Backend-Entwicklung C#.Net-Tutorial So unterscheiden Sie zwischen C#-Vordergrund- und Hintergrundthreads

So unterscheiden Sie zwischen C#-Vordergrund- und Hintergrundthreads

Jul 09, 2020 pm 05:41 PM
c

Die Common Language Runtime (CLR) von

So unterscheiden Sie zwischen C#-Vordergrund- und Hintergrundthreads

Net kann zwischen zwei verschiedenen Arten von Threads unterscheiden: Vordergrund-Threads und Hintergrund-Threads. Der Unterschied zwischen beiden besteht darin, dass die Anwendung alle Vordergrund-Threads ausführen muss, bevor sie beendet werden kann. Bei Hintergrund-Threads kann die Anwendung jedoch direkt beendet werden, ohne zu berücksichtigen, ob die Ausführung beendet ist.

Möglicherweise kennen Sie den Unterschied nicht:

<strong>前台线程</strong>Der Unterschied und die Verbindung zwischen und 后台线程:

1. Hintergrundthread nicht Verhindert, dass der Prozess beendet wird. Ein Prozess wird beendet, wenn alle zu ihm gehörenden Vordergrund-Threads beendet sind. Alle verbleibenden Hintergrundthreads werden gestoppt und nicht abgeschlossen.

2. Sie können den Vordergrund-Thread jederzeit in einen Hintergrund-Thread ändern, indem Sie die Eigenschaft Thread.IsBackground festlegen.

3. Unabhängig davon, ob es sich um einen Vordergrund-Thread oder einen Hintergrund-Thread handelt, wird der Prozess beendet, wenn im Thread eine Ausnahme auftritt.

4. Threads im verwalteten Thread-Pool sind alle Hintergrund-Threads, und Threads, die mit der neuen Thread-Methode erstellt wurden, sind standardmäßig alle Vordergrund-Threads.

.netThreads, die mit Thread in der Umgebung erstellt wurden, sind standardmäßig Vordergrund-Threads, d. h. das Thread-Attribut IsBackground=false. Solange ein Vordergrund-Thread nicht beendet wurde, wird der Prozess nicht beendet beenden. Der Hauptthread ist ein Vordergrundthread. Unabhängig davon, ob der Thread endet, wird der Hintergrund-Thread automatisch beendet, solange alle Vordergrund-Threads beendet werden (einschließlich normaler Exits und abnormaler Exits). Im Allgemeinen werden Hintergrundthreads zur Verarbeitung kurzfristiger Aufgaben verwendet. In einem Webserver können Hintergrundthreads beispielsweise zur Verarbeitung von vom Client gesendeten Anforderungsinformationen verwendet werden. Der Vordergrund-Thread wird im Allgemeinen zur Bearbeitung von Aufgaben verwendet, die längere Wartezeiten erfordern, z. B. Programme, die Clientanforderungen auf einem Webserver überwachen, oder Programme, die regelmäßig bestimmte Systemressourcen scannen.

Fall

static void Main(string[] args)
    {
      SampleTread thead = new SampleTread(10);

      SampleTread theadback = new SampleTread(10);
      var theadone = new Thread(thead.CountNumbers);
      var theadtwo = new Thread(theadback.CountNumbers);
      theadtwo.IsBackground = true;
      theadone.Start();
      theadtwo.Start();
      
    }
Nach dem Login kopieren
class SampleTread
  {
    private readonly int _iterations;
    public SampleTread(int iterations)
    {
      this._iterations = iterations;
    }
    public void CountNumbers()
    {
      for (int i = 0; i < _iterations; i++)
      {
        Sleep(TimeSpan.FromSeconds(0.5));
        Console.WriteLine($"{ CurrentThread.Name}print{i}");
      }
    }
  }
Nach dem Login kopieren

Analyse

Das laufende Ergebnis ist, dass nach Abschluss der Ausführung durch den Front-Thread auch der Hintergrund-Thread ausgeführt wird Ausfahrt. Tatsächlich gibt es im Betriebssystem kein Konzept für Front- und Rear-Threads. Warum gibt es so etwas?

Was ist der Sinn? Dies ist ursprünglich der Fall, wenn unser Hauptthread endet, da unser Thread-Objekt freigegeben wird. Wenn andere Threads nicht freigegeben werden, ist der Schaden für andere Threads wirklich zu groß. C# stellt uns die Konzepte von Vordergrund-Threads und Hintergrund-Threads zur Verfügung, um die Bedienung von Threads zu vereinfachen.

Die Verwendung hängt vom jeweiligen Projekt ab. Hintergrundthreads dienen oft als Hilfsfunktionen. In WinForm wird der Thread-Prozess beispielsweise nach dem Schließen des Fensters immer noch nicht geschlossen. Dies liegt daran, dass der Haupt-Thread nach dem Schließen geschlossen wird.

Aus diesem Grund können Sie auch andere Threads sehen. Der Grund, warum Sie andere Threads sehen, kann natürlich sein, dass es mehrere Prozesse gibt und die Hauptthreads anderer Prozesse nicht geschlossen sind. Dies erfordert eine detaillierte Analyse.

Verwandte Lernempfehlungen: C-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo unterscheiden Sie zwischen C#-Vordergrund- und Hintergrundthreads. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was sind Konstanten in der C-Sprache? Können Sie ein Beispiel nennen? Was sind Konstanten in der C-Sprache? Können Sie ein Beispiel nennen? Aug 28, 2023 pm 10:45 PM

Eine Konstante wird auch als Variable bezeichnet. Sobald sie definiert ist, ändert sich ihr Wert während der Ausführung des Programms nicht. Daher können wir eine Variable als Konstante deklarieren, die auf einen festen Wert verweist. Es wird auch Text genannt. Konstanten müssen mit dem Schlüsselwort Const definiert werden. Syntax Die Syntax der in der Programmiersprache C verwendeten Konstanten ist wie folgt: consttypeVariableName; (oder) Verschiedene Arten von Konstanten Die verschiedenen Arten von Konstanten, die in der Programmiersprache C verwendet werden, sind wie folgt: Ganzzahlige Konstanten – Beispiel: 1,0 ,34, 4567 Gleitkommakonstanten – Beispiel: 0,0, 156,89, 23,456 Oktal- und Hexadezimalkonstanten – Beispiel: Hex: 0x2a, 0xaa.. Oktal

VSCode und VS C++ IntelliSense funktionieren nicht oder rufen keine Bibliotheken auf VSCode und VS C++ IntelliSense funktionieren nicht oder rufen keine Bibliotheken auf Feb 29, 2024 pm 01:28 PM

VS Code und Visual Studio C++ IntelliSense können Bibliotheken möglicherweise nicht abrufen, insbesondere bei der Arbeit an großen Projekten. Wenn wir mit der Maus über #Include&lt;wx/wx.h&gt; fahren, wird die Fehlermeldung „Quelldatei 'string.h' kann nicht geöffnet werden“ angezeigt (abhängig von „wx/wx.h“) und manchmal reagiert die Funktion zur automatischen Vervollständigung nicht. In diesem Artikel erfahren Sie, was Sie tun können, wenn VSCode und VSC++ IntelliSense nicht funktionieren oder Bibliotheken nicht extrahieren. Warum funktioniert mein Intellisense nicht in C++? Bei der Arbeit mit großen Dateien kommt es manchmal zu IntelliSense

Beheben Sie den Xbox-Fehlercode 8C230002 Beheben Sie den Xbox-Fehlercode 8C230002 Feb 27, 2024 pm 03:55 PM

Können Sie aufgrund des Fehlercodes 8C230002 keine Inhalte auf Ihrer Xbox kaufen oder ansehen? Einige Benutzer erhalten diese Fehlermeldung immer wieder, wenn sie versuchen, Inhalte auf ihrer Konsole zu kaufen oder anzusehen. Leider liegt ein Problem mit dem Xbox-Dienst vor. Versuchen Sie es später erneut. Wenn Sie Hilfe zu diesem Problem benötigen, besuchen Sie www.xbox.com/errorhelp. Statuscode: 8C230002 Dieser Fehlercode wird normalerweise durch vorübergehende Server- oder Netzwerkprobleme verursacht. Es kann jedoch auch andere Gründe geben, beispielsweise die Datenschutzeinstellungen oder die Kindersicherung Ihres Kontos, die Sie möglicherweise daran hindern, bestimmte Inhalte zu kaufen oder anzusehen. Beheben Sie den Xbox-Fehlercode 8C230002, wenn Sie beim Versuch, Inhalte auf Ihrer Xbox-Konsole anzusehen oder zu kaufen, den Fehlercode 8C erhalten

Rekursives Programm zum Ermitteln minimaler und maximaler Elemente eines Arrays in C++ Rekursives Programm zum Ermitteln minimaler und maximaler Elemente eines Arrays in C++ Aug 31, 2023 pm 07:37 PM

Als Eingabe nehmen wir das Integer-Array Arr[]. Ziel ist es, mithilfe einer rekursiven Methode die größten und kleinsten Elemente in einem Array zu finden. Da wir Rekursion verwenden, durchlaufen wir das gesamte Array, bis wir Länge = 1 erreichen, und geben dann A[0] zurück, was den Basisfall bildet. Andernfalls wird das aktuelle Element mit dem aktuellen Minimal- oder Maximalwert verglichen und sein Wert für nachfolgende Elemente rekursiv aktualisiert. Schauen wir uns verschiedene Eingabe- und Ausgabeszenarien dafür an −Input −Arr={12,67,99,76,32};Output −Maximum value in the array: 99 Explanation &mi

China Eastern Airlines gibt bekannt, dass das Passagierflugzeug C919 bald in Betrieb genommen wird China Eastern Airlines gibt bekannt, dass das Passagierflugzeug C919 bald in Betrieb genommen wird May 28, 2023 pm 11:43 PM

Laut Nachrichten vom 25. Mai gab China Eastern Airlines bei der Leistungsbesprechung die neuesten Fortschritte beim Passagierflugzeug C919 bekannt. Nach Angaben des Unternehmens ist der mit COMAC unterzeichnete C919-Kaufvertrag im März 2021 offiziell in Kraft getreten und das erste C919-Flugzeug wurde bis Ende 2022 ausgeliefert. Es wird erwartet, dass das Flugzeug bald offiziell in Betrieb genommen wird. China Eastern Airlines wird Shanghai als Hauptbasis für den kommerziellen Betrieb der C919 nutzen und plant die Einführung von insgesamt fünf C919-Passagierflugzeugen in den Jahren 2022 und 2023. Das Unternehmen gab an, dass zukünftige Einführungspläne auf der Grundlage der tatsächlichen Betriebsbedingungen und der Streckennetzplanung festgelegt werden. Nach Auffassung des Herausgebers handelt es sich bei der C919 um Chinas neue Generation globaler Single-Aisle-Hauptlinienpassagierflugzeuge mit völlig unabhängigen geistigen Eigentumsrechten und entspricht international anerkannten Lufttüchtigkeitsstandards. Sollen

C++-Programm zum Drucken spiralförmiger Zahlenmuster C++-Programm zum Drucken spiralförmiger Zahlenmuster Sep 05, 2023 pm 06:25 PM

Die Anzeige von Zahlen in verschiedenen Formaten ist eines der grundlegenden Codierungsprobleme beim Lernen. Verschiedene Codierungskonzepte wie bedingte Anweisungen und Schleifenanweisungen. Es gibt verschiedene Programme, in denen wir Sonderzeichen wie Sternchen verwenden, um Dreiecke oder Quadrate zu drucken. In diesem Artikel drucken wir Zahlen in Spiralform, genau wie Quadrate in C++. Wir nehmen die Anzahl der Zeilen n als Eingabe, beginnen in der oberen linken Ecke und bewegen uns nach rechts, dann nach unten, dann nach links, dann nach oben, dann wieder nach rechts und so weiter und so fort. Spiralmuster mit Zahlen 123456724252627282982340414243309223948494431102138474645321120373635343312191817161514

Die Funktion des Schlüsselworts void in der C-Sprache Die Funktion des Schlüsselworts void in der C-Sprache Feb 19, 2024 pm 11:33 PM

void ist in C ein spezielles Schlüsselwort, das zur Darstellung eines leeren Typs verwendet wird, also Daten ohne einen bestimmten Typ. In der C-Sprache wird void normalerweise in den folgenden drei Aspekten verwendet. Der Rückgabetyp der Funktion ist void. In der Sprache C können Funktionen unterschiedliche Rückgabetypen haben, z. B. int, float, char usw. Wenn die Funktion jedoch keinen Wert zurückgibt, kann der Rückgabetyp auf void gesetzt werden. Dies bedeutet, dass die Funktion nach Ausführung keinen bestimmten Wert zurückgibt. Zum Beispiel: voidhelloWorld()

Zum ersten Mal seit 23 Jahren gewinnt C# den TIOBE 2023 Programming Language of the Year Award Zum ersten Mal seit 23 Jahren gewinnt C# den TIOBE 2023 Programming Language of the Year Award Jan 11, 2024 pm 04:45 PM

Laut dem TIOBE Programming Community Index, einem der Benchmarks zur Messung der Beliebtheit von Programmiersprachen, wird er durch das Sammeln von Daten von Ingenieuren, Kursen, Anbietern und Suchmaschinen auf der ganzen Welt bewertet. Der TIOBE-Index im Januar 2024 wurde kürzlich veröffentlicht und die offizielle Rangliste der Programmiersprachen für 2023 wurde bekannt gegeben. C# wurde zum ersten Mal seit 23 Jahren als TIOBE-Programmiersprache des Jahres ausgezeichnet. In der offiziellen Pressemitteilung von TIOBE heißt es, dass C# seit mehr als 20 Jahren zu den Top 10 gehört und nun zu den vier großen Sprachen aufschließt und sich zur Programmiersprache mit dem größten Wachstum seit einem Jahr entwickelt hat (+1,43 %). Es hat sich diesen Preis mehr als verdient. Auf dem zweiten Platz liegen Scratch (+0,83 %) und Fortran (+0).

See all articles