Entwickler-Ecke
C# - Die Sprache - Umzug von WinForm-APP auf Konsole-APP
tomycat - Do 15.07.21 19:42
Titel: Umzug von WinForm-APP auf Konsole-APP
hallo zusammen,
ich ziehe gerade mein Projekt von Umzug von WinForm-APP auf Konsole-APP um.
1.Frage:
Ich habe immer mit
public und
private gearbeitet, mit der Konsole-APP habe ich jetzt
static?!
Was ist jetzt genau anders?
2.Frage:
Ich habe in WinForm ->
await Task.Delay(5000); <- benutzt.
Leider Ignoriert jetzt VS diese Zeile?!
Gibt es eine Alternative?
Moderiert von
Th69: C#-Tags hinzugefügt
Ralf Jansen - Do 15.07.21 19:54
Die Main Methode sieht vermutlich so aus
static void Main ... das kannst du einfach in
static async Task Main ... ändern. Also "
void" durch "
async Task" ersetzen. Dann geht async/await wieder.
Das sollte in jeder halbwegs aktuellen c# Version (ab 7.1) gehen.
Deine erste Frage ist mir zu Basic. Allgemein
static hat nix mit Sichtbarkeiten wie
public/
private zu tun. Du hast aber die Begriffe, weißt hoffentlich wo die Dokumentation ist und kannst das schnell nachlesen.
Wenn dann Fragen offen sind, frag dann konkreter nochmal.
Moderiert von
Th69: C#-Tags hinzugefügt
tomycat - So 18.07.21 18:50
thx,
das waren die richtige Worte,
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47:
| static async Task Main(string[] args) { await Task.Delay(10000);
ABC abc = new ABC(); for (int a = 0; a <= irgend_ein_inhalt.GetUpperBound(0); a++) { abc.id_search[a] = info_balbla[a]; } abc.create_search(); }
public string[] id_search = new string[10];
internal class ABC { public async void just_search() { GO_TO_WEB go_to_web = new GO_TO_WEB();
for (int a = 0;a < 10; a++) { go_to_web.inhalt[a] = irgendwas[a]; await Task.Delay(1100); Console.WriteLine("-->"); string result = await go_to_web.LoaderAsync(); Console.WriteLine(result); } } }
public async Task<string> LoaderAsync() { using (var httpClient = new HttpClient()) result = await httpClient.GetStringAsync(anfrage); return result; } |
Ich starte mein Programm und es wird die Liste von Internet abgerufen. Das geht.
Nach 10 Sekunden soll die Klasse abc aufgerufen werden.
Wenn ich die Zeile Knackpunkte ausdokumentiere wird --> angezeigt und das Programm wird beendet. Mit der Zeile Knackpunkt wird das Programm sofort beendet.
Moderiert von
Th69: unnötiges Zitat entfernt.
Th69 - So 18.07.21 19:32
Zeige mal noch den Code für
Btw.:
abc ist eine Methode, keine Klasse.
Ralf Jansen - So 18.07.21 20:29
die abc Methode ohne await davor aufgerufen?
tomycat - Di 20.07.21 22:07
Ralf Jansen hat folgendes geschrieben : |
die abc Methode ohne await davor aufgerufen? |
nein,
mit der Form1 Projekt gings.
Ich habe den Quellcode geändert.
Ralf Jansen - Di 20.07.21 22:37
wenn create_search die Methode just_search Methode ist dann hast du die ohne await aufgerufen.
Heißt, das hatten wir zuletzt jetzt aber schon mehrmals, das der Programmablauf an der Stelle nicht hält und wartet bis create_search/just_search fertig ist sondern weiter läuft.
Das danach deine Main Methode zu Ende ist heißt dein Programm ist dann auch zu Ende egal ob create_search/just_search fertig ist.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!