Servus zusammen,
Habe ein Array an Sätzen erstellt (Notions, hier 10 Stück).
Bevor ich ein neues Notion-Objekt erstellen will, will ich nun z.B. 100ms warten.
Wie kann ich dies in die for-Schleife implementieren?
Habe mich da schon mit der Timer-Klasse etwas "gespielt".
Mein bisheriger Versuch:
Notion[] NotionArr = new Notion[10];
Timer t1 = new Timer();
t1.Interval = 100;
for (int i = 0; i < NotionArr.Length; i++) {
NotionArr[i] = new Notion();
Console.WriteLine(NotionArr[i]);
t1.Start();
t1.Stop();
}
Console.ReadKey();
Hallo Michael1995,
eleganter wie mit dem Timer geht es mit Tasks:
private static async Task FillNotionsAsync(IList<Notion> notions)
{
for (int i = 0; i < notions.Count; ++i)
{
await Task.Delay(100).ConfigureAwait(false);
notions[i] = new Notion();
}
}
od. falls du C# 8 verwenden kannst
private static async IAsyncEnumerable<Notion> CreateNotionsAsync(int count)
{
for (int i = 0; i < count; ++i)
{
await Task.Delay(100).ConfigureAwait(false);
yield return new Notion();
}
}
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Cool danke für deine Antwort.
aber eine so simple Anweisung, dass die Intvervall-Zeit abläuft, und dann erst der nächste Schleifendurchlauf anfängt, gibt es nicht?
Probiere diese Lösung mal aus, habe leider keine Erfahrung mit Asynchronen Methoden
Es gibt Thread.sleep. Sollte man allerdings nicht im Hauptthread verwenden.
Und nachdem es komplexe Konstrukte gibt bei denen man mehrmals hinschauen muss um sie zu verstehen, ist etwas einfaches ja sowieso nicht mehr gewünscht 😃
danke, für meinen Zweck vollkommen ausreichend.
Keine Full Quotes
[Hinweis] Wie poste ich richtig?