|
Wenn wir ein Formular beantragen, müssen wir manchmal Informationen über das aktuelle Formular erhalten oder die Kontrollen anderer Formulare aufrufen. Hier stelle ich zwei Methoden vor, um dies zu erreichen.
Wenn wir Steuerungen aus anderen Formen in einer Form aufrufen müssen, können wir Steuerungen verwenden. CheckForIllegaCrossThreadCalls=false; Zum Beispiel: Button.CheckForIllegalCrossThreadCalls=false; Natürlich können wir das gesamte Formular auch querverzweigt machen Form.CheckForIllegalCrossCrossThreadCalls=false; Dies ermöglicht es uns, auf die Kontrollen oder Eigenschaften dieser Form in anderen Formen zuzugreifen. Das ist vielleicht nicht die sicherste Methode, und manchmal führt das Debuggen zu einem Fehler.
Hier stelle ich eine weitere Methode vor, die über Threads hinweg zugänglich ist. Invoke springt auf den Form-Thread, um die Funktion auf dem Delegierten auszuführen
Zuerst müssen wir eine Kommission ausrufen. öffentlicher Delegierter ungültig DelSetTime (Objekt-Stärke); Dann müssen wir nur noch die Funktion vorbereiten, die ausgeführt werden muss, öffentliche leere MengeTime (Objekt-Stärke); Jetzt können wir den Delegaten auf den Thread des Formulars setzen, um ausgeführt zu werden Delegierter d=neuer DelsetTime(setTime); das. Invoke(d,Datetime.Now.ToString()); So können wir Crossthread-Zugriff erreichen.
Jedes Formular besitzt einen Formfaden, der hauptsächlich für das Abschließen der Zeichnung der Form und der Formsteuerung verantwortlich ist. Diesen Faden nennen wir Formfaden oder Hauptfaden. Oft müssen wir Threads zum Formular hinzufügen, um die Daten zu verarbeiten, und dann können wir diese neu erstellten Threads als Hintergrundthreads setzen, wenn das Formular geschlossen wird Der Faden endet ebenfalls. ThreadStart ths=neuer ThreadStart(Demo); Thread th= neuer Thread(ths); D. Start(); D. IsHintergrund=wahr;
Original: http://bingdao.sinaapp.com/net%E4%BD%93%E7%B3%BB/380.html
|