c#-Multithread-Zugriffsschnittstelle
Nach C#2005 wird der direkte Multithread-Zugriff auf Schnittstellensteuerelemente nicht mehr unterstützt (der Schnittstellenerstellungs-Thread und der Zugriffs-Thread sind nicht derselbe Thread), Sie können das Problem jedoch mit „delegieren“ lösen:
{
// Wenn nicht, bedienen Sie das Steuerelement direkt
_progressBar.Value = newPos;
}
else
{
// Ja, wenn Sie die Delegierung aktivieren möchten access,
ShowProgressDelegate showProgress = new ShowProgressDelegate(ShowProgress); showProgress, neues Objekt [] { newPos });
}
}
delegate void ShowProgressDelegate(int newPos);
private void ShowProgress(int newPos)
{
// Bestimmen ob es sich im Thread befindet Zugriff
if (!_progressBar.InvokeRequired)
{
// Wenn nicht, bedienen Sie das Steuerelement direkt
_progressBar.Value = newPos;
}
else
{
/ / Wenn ja, aktivieren Sie den Delegatenzugriff
ShowProgressDelegate showProgress = new ShowProgressDelegate(ShowProgress);
// Wenn Sie Invoke verwenden, warten Sie, bis der Funktionsaufruf abgeschlossen ist, BeginInvoke jedoch Nicht warten und direkt zurück gehen
this.BeginInvoke(showProgress, new object[] { newPos });
}
}
2. Thread-Funktion definieren (Interface-Controls können eingelesen werden ein anderer Thread)
view plaincopy to clipboardprint?
private void ProgressStart()
{
while (true)
{
int newPos = _progressBar.Value + 10;
if (newPos > _progressBar.Maximum) {
newPos = _progressBar.Minimum>}
Trace.WriteLine(string.Format("Pos: {0}", newPos)// Die Methode wird hier intern direkt aufgerufen. Bestimmen Sie automatisch, ob der Delegat aktiviert ist
ShowProgress(newPos>}
}
private void ProgressStart(){
while (true)
{
int newPos = _progressBar.Value + 10;
if (newPos > _progressBar.Maximum)
{
newPos = _progressBar.Minimum;
}
Trace. WriteLine(string.Format("Pos: {0}", newPos));
// Die Methode wird hier direkt aufgerufen und bestimmt automatisch, ob Delegat aktiviert werden soll
ShowProgress(newPos);
Thread.Sleep (100);
}
}
3. Thread-Start und -Beendigung
Klarkopie in Zwischenablage anzeigen?
privater Thread _progressThread;
_progressThread = new Thread(new ThreadStart (ProgressStart));
/ Optional, Funktion: Auch wenn der Thread nicht endet, kann der Prozess beendet werden
_progressThread. Start();
_progressThread( );
// Optional, Funktion: warten, bis der Thread endet
_progressThread.Join();
_progressThread = null; > Das Obige ist der Inhalt der c#-Multithread-Zugriffsschnittstelle. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Leitfaden zu Active Directory mit C#. Hier besprechen wir die Einführung und die Funktionsweise von Active Directory in C# sowie die Syntax und das Beispiel.

Leitfaden zum Zufallszahlengenerator in C#. Hier besprechen wir die Funktionsweise des Zufallszahlengenerators, das Konzept von Pseudozufallszahlen und sicheren Zahlen.

Leitfaden zu den Zugriffsmodifikatoren in C#. Wir haben die Einführungstypen von Zugriffsmodifikatoren in C# zusammen mit Beispielen und Ausgaben besprochen.

Leitfaden zur C#-Datenrasteransicht. Hier diskutieren wir die Beispiele, wie eine Datenrasteransicht aus der SQL-Datenbank oder einer Excel-Datei geladen und exportiert werden kann.

Leitfaden zur C#-Serialisierung. Hier besprechen wir die Einführung, die Schritte des C#-Serialisierungsobjekts, die Funktionsweise bzw. das Beispiel.

Leitfaden zu Mustern in C#. Hier besprechen wir die Einführung und die drei wichtigsten Arten von Mustern in C# zusammen mit ihren Beispielen und der Code-Implementierung.

Leitfaden zu Primzahlen in C#. Hier besprechen wir die Einführung und Beispiele von Primzahlen in C# sowie die Codeimplementierung.

Leitfaden zur Fakultät in C#. Hier diskutieren wir die Einführung in die Fakultät in C# zusammen mit verschiedenen Beispielen und Code-Implementierungen.
