Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Pytanie dotyczące pętli.


Rekomendowane odpowiedzi

Opublikowano
while(true)
{
Thread.Sleep(1000);
Console.WriteLine("A");

Console.WriteLine("B"); // uwaga <- czytaj w poscie o co mi chodzi
}

Hej

 

Powiem od razu że tytuł tematu jest błędny :)

 

A teraz o co mi chodzi: Mamy sobie nieskończoną pętle While która wypisuje na konsoli "A" i potem "B" a teraz cały myk polega na tym że to "A" ma być ciągle wypisywane a to "B" np. co 5 minut i jak takie coś zrobić za pomocą jednej pętli.

Opublikowano

Zrób sobie licznik. Dodawaj do niego 1 co każdy obieg pętli, kiedy licznik > 300 wykonaj B i zresetuj licznik.

Opublikowano

Zrób albo tak jak @Casper napisał co jest prostszą ale raczej niezbyt pożądaną metodą albo... użyją wątków które zostały to tego stworzone, mogą się one na początku wydawać dużo trudniejsze ale jeśli poświęcisz im chwilę to zaowocuje to w przyszłości.

Z racji tego, że w jednym z swoich tematów mówiłeś o nie najlepszej znajomości angielskiego podaję Ci link to tutoriala po polsku:

http://4programmers.net/C_sharp/Wprowadzenie_do_w%C4%85tk%C3%B3w

Pozdrawiam,
Paweł

"Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber beim Universum bin ich mir nicht ganz sicher."
~A. Einstein

Opublikowano

B ma być wyświetlane co 5 minut, tak więc Vesim podał najlepsze rozwiązanie, możemy w petli while dodac jeszcze jakiś if sprawdzający czas i ot cały kod. Jeśli jednak chcielibyśmy, aby A było wypisywane bez przerwy, a B co 5 minut, ale nie z pozycji tej samej pętli to pomysł pawwit13'a jest najlepszy, gdyż jeden wątek może nam wyświetlać A, a drugi wątek może liczyć czas i co 5 minut wypisać B.

Opublikowano

 

using System;
using System.Threading.Tasks;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            new Task(new Action(() =>
            {
                DateTime lp = DateTime.Now;
                while (true)
                {
                    Console.WriteLine("A");
                    if ((DateTime.Now - lp).TotalMinutes >= 5)
                    {
                        Console.WriteLine("B");
                        lp = DateTime.Now;
                    }
                }
            })).Start();
            Console.ReadKey();
        }
    }
}

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...