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

C++ timer i menu


Rekomendowane odpowiedzi

Opublikowano

Witam.

Dzisiaj mam do was takie pytanie a zarazem problem. Sytuacja wygląda następująco:  Mam bota który działa za pomocą Timera z WinApi wszystko w konsoli. I chciałbym żeby bot działał cały czas tzn żeby timer był wykonywany co 1sec tak jak to jest obecnie

i do tego żeby można było się poruszać po menu które będzie działało na zasadzie listy wyboru.
Problem leży w tym że jeśli będę chciał sprawdzać jaki klawisz został wciśnięty to sekundowy odstęp czasu to zbyt wiele a strumien std::cin wymaga potwierdzenia enterem co znowu zatrzymuje program.
Podsumowując zależy mi na tym by były wykonywane 2 operacje naraz jedna która będzie dbała o sprawne działanie menu i 2 która będzie wykonywała kod bota. 
Z góry dziękuje za pomoc i pozdrawiam :-)

Opublikowano

Ciekawa biblioteka jednak troszkę mnie zastanawia ponieważ wpisałem sobie w Google nazwę biblioteki i znalazłem jakiś tutorial i trochę mnie zastanawia zasada działania tej biblioteki. A najbardziej ten wynik programu  jak widać tworzone są one w kolejności od 0-4 a wykonywane jak sobie chcą? Jeśli można prosić jakieś słowa wyjaśnienia lub coś :-)
 

main() : creating thread, 0
main() : creating thread, 1
main() : creating thread, 2
main() : creating thread, 3
main() : creating thread, 4
Thread ID : 3 Message : This is message
Thread ID : 2 Message : This is message
Thread ID : 0 Message : This is message
Thread ID : 1 Message : This is message
Thread ID : 4 Message : This is message
Opublikowano
Opublikowano

Keep calm b***h :-)
Skoro nie jest wymagana biblioteka do używania wyżej wymienionej funkcji w c++ to według mnie definiowanie
 

#include <pthread.h>

Thx za informacje :* 

Opublikowano

Tak wyimaginowanie i łopatologicznie:
 *Wątki tworzysz by podzielić wykonywanie kodu.
 *Każdy wątek działa osobno nie blokując innych wątków.

Gdy masz taką sytuacje ze jeden wątek korzysta z zasobów innego wątku (i widzisz w tym jakiś niebezpieczeństwo) wtedy używasz mutex'a, czyli tworzysz taką strefę w której dwa wątki nie mogą być razem, pierwszy wątek wejdzie do tej strefy i dopiero jak wyjdzie to drugi wątek będzie mógł tam wejść.

Stwórz sobie 2 wątki.
Jeden wątek do GUI czy tam UI.
Drugi do bota.
Dzięki temu program bota nie będzie ci blokował intefresju.


To nie jest żadna biblioteka...

I jeśli wątki są wykonywane równoległe to się nie dziw, że wypisuje w dowolnej kolejnosci

W systemach komputerowych nie istnieje takie coś jak równoległość, prędzej pseudo równoległość. xD

Opublikowano
 

To nie jest żadna biblioteka...

I jeśli wątki są wykonywane równoległe to się nie dziw, że wypisuje w dowolnej kolejnosci

W systemach komputerowych nie istnieje takie coś jak równoległość, prędzej pseudo równoległość. xD

 

Właśnie obaliłeś istnienie wielordzeniowych procesorów!

Opublikowano

Uwaga, włączam fizolofa:

Ogólnie nie zgłębiałem się w budowie procesora, no ale jeżeli każdy rdzeń ma osobne ALU, CU, EU itp to wtedy mogę się zgodzić ze istnieje "równoległość" w wykonywanych operacjach.
No ale własnie nie wiem czy ALU, CU, EU itp jest jedno w całym procesorze, czy każdy rdzeń go posiada.

 

I ogólnie wg mnie nie istnieje coś takiego jak równoległość(we wszechświecie) iż gdyż
przyjmując ze wszechświat jest nieskończenie wielki, tak wiec dokładność czasu tez jest nieskończona, a jak wiadomo nieskończonych rzeczy nie da się porównać. (A równoległosc to jest coś wykonywane w tym samym czasie).

Ale wam banie ryje, dobry filozof ze mnie, chyba zacznę książki pisać. Będziecie je czytać ? xD?

Koniec filozofowania

Opublikowano

No też właśnie, skoro nie wiesz to dlaczego negujesz? Sam też się tym nie interesowałem i chętnie poczytałbym na ten temat, więc jeśli ktoś posiada na ten temat jakąś wiedzę, to prosiłbym o chociażby słowa klucze, gdyż poszukiwanie wielordzeniowości z np. ALU prowadzi mnie donikąd (lub oduczyłem się szukać).

 

PS. wcale nie zryłeś nikomu bani, bo wg Ciebie nie istnieje sytuacja "wykonywania dwóch różnych rzeczy w tym samym czasie" a więc powiedz mi jaki masz numer w kolejce wykonywania Twojego ruchu palcem a którą ma kolejność wykonanie pracy Twojego mózgu. Coś trochę z Twoją filozofią nie tak ^^

 

@OT można wykorzystać systemowe timery, wydają się prostsze do opanowania od wątków aczkolwiek wątki, rzekłbym, dają większą elastyczność.

YOU MUST DIE

- Ganon, Koridai

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...