myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Grundlagen von C# » [erledigt] Zeit messen
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

[erledigt] Zeit messen

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Jonas007 Jonas007 ist männlich
myCSharp.de-Mitglied

Dabei seit: 18.01.2020
Beiträge: 17
Entwicklungsumgebung: Visual Studio 2017
Herkunft: Österreich


Jonas007 ist offline

[erledigt] Zeit messen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo liebe Community,
ich will folgendes machen: Nach einer zufälligen Zeit zwischen 300 und 3000 Millisekunden soll etwas ausgeführt werden (In diesem Fall eine Ausgabe an der Console). Ich wollte wissen, was an meiner Denkweise falsch ist, bzw. wie man das hier richtig lösen könnte.

C#-Code:
            Random random = new Random();
            TimeSpan startAction = new TimeSpan();
            DateTime start = new DateTime();

            startAction = TimeSpan.FromMilliseconds(random.Next(300, 3000));
            start = DateTime.Now + startAction;

            while (true)
            {
                if (DateTime.Now == start)
                {
                    Console.WriteLine("\tHallo Welt");
                    break;
                }
            }

edit: Ich weiß, dass ich es auch mit einem Timer lösen könnte, jedoch würde mich interessieren was an diesem Code programmtechnisch nicht funktioniert

Danke schonmal im voraus!
Mit freundliche Grüßen
Jonas

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Jonas007 am 20.11.2020 19:42.

Neuer Beitrag 18.05.2020 22:06 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MrSparkle MrSparkle ist männlich
myCSharp.de-Team

avatar-2159.gif


Dabei seit: 16.05.2006
Beiträge: 5.565
Herkunft: Leipzig


MrSparkle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

C#-Code:
  if (DateTime.Now == start)

Dieser Fall mit wird (mit großer Wahrscheinlichkeit) nie eintreten.

Verwende lieber einen Timer.
Neuer Beitrag 18.05.2020 22:32 Beiträge des Benutzers | zu Buddylist hinzufügen
Palladin007 Palladin007 ist männlich
myCSharp.de-Mitglied

avatar-4140.png


Dabei seit: 03.02.2012
Beiträge: 1.362
Entwicklungsumgebung: Visual Studio 2019
Herkunft: NRW


Palladin007 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Das funktioniert nicht, weil DateTime in zu kleinen Dimensionen rechnet.
Du hast vermutlich deinen Start schon übersprungen, ohne es zu merken.

Zum Zeit messen ist Stopwatch besser, oder Du nutzt ">="
Oder eben der Timer

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Palladin007 am 19.05.2020 00:18.

Neuer Beitrag 19.05.2020 00:17 Beiträge des Benutzers | zu Buddylist hinzufügen
BerndFfm BerndFfm ist männlich
myCSharp.de-Team

avatar-3299.jpg


Dabei seit: 20.01.2006
Beiträge: 3.622
Entwicklungsumgebung: Visual Studio 2015
Herkunft: Frankfurt a.M.


BerndFfm ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Oder den bösen Befehl Sleep :

C#-Code:
Thread.Sleep(random.Next(300, 3000));

Grüße Bernd
Neuer Beitrag 19.05.2020 09:13 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
EyeTrackJack EyeTrackJack ist männlich
myCSharp.de-Mitglied

Dabei seit: 24.01.2019
Beiträge: 31
Entwicklungsumgebung: Visual Studio


EyeTrackJack ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ich wäre auch für einen Timer. So eine Schleife fühlt sich überhaupt nicht gut an ;) Mit einem Timer kann man ja dann die Ausgabe erzeugen und gleich das Interval ändern. Finde ich eleganter.
Neuer Beitrag 21.05.2020 20:37 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 6 Monate.
Der letzte Beitrag ist älter als 6 Monate.
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 28.11.2020 09:09