Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wątki

Ostatnio zmodyfikowano 2016-12-17 16:55
Autor Wiadomość
Warmix
Temat założony przez niniejszego użytkownika
Wątki
» 2016-12-16 00:25:10
Korzystając z biblioteki SFML będę w aplikacji ładować trochę tekstur, chciałbym to zrobić hurtem podczas uruchamiania aplikacji, ale (jeszcze nie wiem, ale przypuszczam),   że pewnie trochę może to zająć, to by nie sprawiać wrażenia zaciętej aplikacji, chciałbym wyrzucić na ekran komunikat o ładowaniu grafik, które "w tle" by się ładowały. Znalazłem funkcję w samym SFML do obsługi wątków, ale przeczytałem, że powinno się używać obłuskni wątków wprowadzonej w standardzie c++ 11. I teraz moje pytanie. Czy zastosować obsługę wątków z SFMLa czy zastosować się do zaleceń i skorzystać z tego w standardzie c++? A jeśli lepiej z tego ze standardu to czy polecicie jakiś dobry artykuł, w którym wyjaśnione będzie jak podzielić program na wątki itd.
P-155030
Gibas11
» 2016-12-16 01:16:49
Wątki z C++ są lepsze bo możesz ich użyć wszędzie. Jeśli coś jest w standardzie staraj się unikać zewnętrznych bibliotek. A tu masz ładny kurs.
P-155032
Warmix
Temat założony przez niniejszego użytkownika
» 2016-12-17 09:59:10
A jeszcze mam pytanie. Chciałbym w wątku tła tworzyć obiekt, tzn. uruchomić konstruktor klasy. Mógłbym prosić o jakiś przykład, w jaki sposób mogę to zrobić?
P-155074
Gibas11
» 2016-12-17 12:12:31
Klasa( parametr );
?
P-155078
mokrowski
» 2016-12-17 16:55:34
C/C++
#include <iostream>
#include <thread>
#include <chrono>
#include <string>

class Tuba {
public:
    Tuba( const std::string & msg );
    void dmuchaj( unsigned czas, unsigned ile ) const;
private:
    const std::string dzwiek;
};

Tuba::Tuba( const std::string & msg )
    : dzwiek
{ msg } {
}

void Tuba::dmuchaj( unsigned czas, unsigned ile ) const {
    for( auto i = 0; i < ile; ++i ) {
        std::cout << dzwiek << " " << std::flush;
        std::this_thread::sleep_for( std::chrono::milliseconds( czas ) );
    }
}

int main() {
    using namespace std;
   
    Tuba tuba1( "Pom..." );
    Tuba tuba2( "Pff..." );
    unsigned czas1 = 800;
    unsigned czas2 = 300;
    auto thr1 = thread( & Tuba::dmuchaj, & tuba1, czas1, 10 );
    auto thr2 = thread( & Tuba::dmuchaj, & tuba2, czas2, 17 );
    thr1.join();
    thr2.join();
    cout << "\nTada!!!!" << endl;
}
P-155095
« 1 »
  Strona 1 z 1