Ist es möglich, Application.Run aufzurufen, aber keinen Formularparameter zu übergeben, oder gibt es eine Alternative, wenn es kein Formular zum Aufruf gibt?
Die Run-Methode scheint keine Überladungen zu enthalten, die kein Formular akzeptieren.
Wenn ich zum Beispiel eine Klasse zuerst instanziieren und dann das Formular aufrufen möchte, gibt es eine Möglichkeit, das Äquivalent zu machen:
%Vor%Nur um zu verdeutlichen, möchte ich immer noch die Funktionalität, die .Run () bietet. Erstellen Sie also eine Schleife, um die Anwendung in Betrieb zu halten, aber statt ein Formular zu verfolgen, verfolgen Sie eine Klasse oder ein anderes Objekt.
Dies bezieht sich zunächst auf das kompakte Framework. Ich nehme an, deshalb hat die Run-Methode nicht die Überlastung, nach der ich gesucht habe.
Ich bin mir nicht sicher, ob du das machen willst:
Für (1) :
%Vor% Was Sie wissen müssen, ist, dass Ihr Programm von der ersten Zeile der Hauptversion aus beginnt und an der letzten endet. Allerdings wird beim Aufruf von Application.Run(FORM)
eine Windows-Meldungsschleife für dieses Formular geladen. Es ist eine spezielle Schleife, die das Programm immer noch in der Hauptsache hält und auf Ereignisse wartet (sie heißen Windows-Meldungen in der Win32-API)
Und so endet das Programm nicht, bis der Benutzer auf die Schaltfläche zum Schließen klickt. In diesem Fall wird das Programm tatsächlich return
von seinem Main.
(2) Wenn Sie jetzt nur eine reine Konsolenanwendung ohne Formulare möchten:
%Vor%Ich hoffe, das hat geholfen.
Die Run-Methode scheint keine Überladungen zu enthalten, die kein Formular akzeptieren.
Uh ... Ссылка
Application.Run-Methode
Beginnt damit, eine Standard-Anwendungsnachrichtenschleife auf dem aktuellen Thread ohne ein Formular auszuführen.
public static void Run()
Sie können die Überladung von Application.Run
verwenden, die nur einen Anwendungskontext akzeptiert Parameter. Ein ApplicationContext
ist im Grunde genommen nur eine Klasse, die Sie erben und beliebige Funktionalität hinzufügen können. Weitere Informationen finden Sie im Beispiel im Link.
Das Problem hier ist jedoch, dass etwas diese Instanz von myClass aufrufen muss, um es zu beenden, sonst läuft das Programm weiter, selbst wenn alle Formulare geschlossen sind. Und das Aufrufen von ExitThread () im Konstruktor wird ignoriert.
Tags und Links .net c# compact-framework