Autor Beitrag
tomycat
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 265
Erhaltene Danke: 1



BeitragVerfasst: Do 15.07.21 19:42 
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 user profile iconTh69: C#-Tags hinzugefügt
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: 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 user profile iconTh69: C#-Tags hinzugefügt

Für diesen Beitrag haben gedankt: tomycat
tomycat Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 265
Erhaltene Danke: 1



BeitragVerfasst: So 18.07.21 18:50 
thx,
das waren die richtige Worte,
ausblenden volle Höhe 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)
{     
    // gehe in die Klasse und hole grosse Liste...

    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();
}

//Schnipp

//Klasse abc...............................

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);                  /////////////// Zeile des Knackpunktes...
            Console.WriteLine("-->"); 
            string result = await go_to_web.LoaderAsync();
            Console.WriteLine(result);
        }
    }
}

//Klasse go_to_web.............................

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 user profile iconTh69: unnötiges Zitat entfernt.


Zuletzt bearbeitet von tomycat am Di 20.07.21 22:06, insgesamt 1-mal bearbeitet
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: So 18.07.21 19:32 
Zeige mal noch den Code für
ausblenden C#-Quelltext
1:
// gehe in die Klasse abc					


Btw.: abc ist eine Methode, keine Klasse.

Für diesen Beitrag haben gedankt: tomycat
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: So 18.07.21 20:29 
die abc Methode ohne await davor aufgerufen?

Für diesen Beitrag haben gedankt: tomycat
tomycat Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 265
Erhaltene Danke: 1



BeitragVerfasst: Di 20.07.21 22:07 
user profile iconRalf Jansen hat folgendes geschrieben Zum zitierten Posting springen:
die abc Methode ohne await davor aufgerufen?


nein,
mit der Form1 Projekt gings.

Ich habe den Quellcode geändert.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: 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.

Für diesen Beitrag haben gedankt: tomycat