EugenIS schrieb:
Was ich ganz ganz toll finde, man erzählt mir hier, vergiss dies vergiss das, und selbst ist man nicht in der Lage eine einfache Klasse mit einem Construktor und einem asynchronen Aufruf mir zu zeigen.
Ja, selbst nimmt sich sich NIE an der Nase. Immer erst vor der eigenen Türe kehren.
Dann hol ich mal aus:
1.) Der ThreadTitel lässt was ganz anderes Ahnen und deine Codesnippets zeigen nicht wirklich auf was du hinaus will, was denkst du warum niemand Antwortet. Dein letzter Code schon eher. Nach 19 Posts. Toll!!!
Aber klar, die anderen dafür verantwortlich machen ist leichter. Übrigens: Wir machen das alle in unserer Freizeit und enentgeltlich. Nur so als Gedanke.
2.) Habe ich dir einen Link gepostet . Leider warst du nicht im Stande diese eine einzige Seite zu lesen und zu verstehen (welche sogar in C# ist).
Denn.... hättest du diese gelesen wüsstest du auch wo dein Fehler vermutlich liegt. Denn du meintest ja du hättest es mit Async Wait ja nun versucht. Allerdings nicht nach diesem Artikel. Ich zitiere mal aus dem Artikel.
Beim Einsatz von async und await sind aber weitere Regeln zu beachten. Einsprungpunkte (main()-Routinen) sowie Methoden mit ref- und out-Parametern dürfen nicht mit async gekennzeichnet werden. Ebenso dürfen solche Methoden nicht mit [SecurityCritical] und [SecuritySafeCritical] oder [MethodImpl(MethodImplOptions.Synchronized)] annotiert sein. await
ist nicht in Getter- oder Setter-Routinen von Properties, in
lock/SyncLock-Blöcken sowie in catch-, finally- und unsafe-Codeblöcken
gestattet.
Das problem kann "umgangen" werden, wenn man es versteht!!
Zu guter letzt habe ich jetzt nur rein anhand dieses Artikels ein Beispiel geschrieben (innerhalb von 3 Minuten) welche veranschaulicht wie Async/Await funzt.
Ich wollte dir das nicht vorsetzen sondern sollte dir einen schubbser in die richtige Richtung geben damit du etwas daraus lernst, wenn du allerdings nicht willst, dann hat zumindest vieleicht wer anderer was davon.
Folgendes Programm:
VB.NET-Quellcode
- Imports System.Threading.Tasks
- Module Module1
- Sub Main()
- Console.WriteLine(Now.ToLongTimeString & ":" & Now.Millisecond.ToString & ": " & "Constructor called...")
- CallAsync()
- Console.WriteLine(Now.ToLongTimeString & ":" & Now.Millisecond.ToString & ": " & "Constructor finished")
- Console.ReadLine()
- End Sub
- Public Async Sub CallAsync()
- Console.WriteLine(Now.ToLongTimeString & ":" & Now.Millisecond.ToString & ": " & "CallAsync start")
- Await DoOperationAsync()
- Console.WriteLine(Now.ToLongTimeString & ":" & Now.Millisecond.ToString & ": " & "CallAsync ends")
- End Sub
- Public Async Function DoOperationAsync() As Task(Of Boolean)
- Console.WriteLine(Now.ToLongTimeString & ":" & Now.Millisecond.ToString & ": " & "Start Async operation...")
- Dim task = New Task(Of Boolean)(Function() MyLongOperationFunktion())
- Console.WriteLine(Now.ToLongTimeString & ":" & Now.Millisecond.ToString & ": " & "Have initiated the Task")
- task.Start()
- Console.WriteLine(Now.ToLongTimeString & ":" & Now.Millisecond.ToString & ": " & "Task has started")
- Dim ret = Await task
- Console.WriteLine(Now.ToLongTimeString & ":" & Now.Millisecond.ToString & ": " & "Task was finished!")
- Return ret
- End Function
- Public Function MyLongOperationFunktion() As Boolean
- Console.WriteLine(Now.ToLongTimeString & ":" & Now.Millisecond.ToString & ": " & "TASK: STARTING")
- Threading.Thread.Sleep(5000)
- Console.WriteLine(Now.ToLongTimeString & ":" & Now.Millisecond.ToString & ": " & "TASK: ENDED")
- Return True
- End Function
- End Module
generiert folgende Ausgabe:
18:23:55:890: Constructor called...
18:23:55:892: CallAsync start
18:23:55:899: Start Async operation...
18:23:55:899: Have initiated the Task
18:23:55:951: Task has started
18:23:55:959: TASK: STARTING
18:23:55:964: Constructor finished
18:24:00:962: TASK: ENDED
18:24:00:963: Task was finished!
18:24:00:963: CallAsync ends
OK, du hast jetzt nix gelernt, aber du hast deinen Willen.
Grüße
Sascha
If _work = worktype.hard Then Me.Drink(Coffee)
Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.
## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##
Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.
## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##