Mam napisaną klasę której zadaniem jest wyswietlanie czegos co pewien czas. Czy da się uruchomić ten obiekt w watku.. tylko ze tak zeby nie bylo kodu boost.thread w funkcji main tylko zeby byl on w samej klasie??
Da się. Szukać!
Ok, dzięki pomogło..tylko że teraz pojawił się nowy problem...
Czy da się zrobić tak aby procesor nie czekał aż zakończy działanie wątek tylko analizował dalszą część kodu?? Nie chodzi mi tu o tworzenie grupy wątków.
Zawsze tak jest, albo nawet prawie. :-D
System startuje wątek, a dalej to już dzielenie zasobów, konkurencja itd.
Obniż priorytet wątku, a wtedy ten główny (i być może inne) zawsze wygrają,
czyli tamten będzie ostatni w kolejce do procesora...
A u mnie jest tak:
w pewnej klasie znajduje się funkcja - void nazwaKlasy::wWatku();
a main w skrocie wygląda tak:
int main()
{
nazwaKlasy obiekt;
obiekt.wWatku();
for(int i=0;i<20;i++)
{
//string
}
}
Pierw przez kilka minut wyswietlają się dane z obiektu uruchomionego w wąteku po czym 20 razy zadany string.
Nie zależy mi w jakim momencie wyświetli się string, tylko tyle żeby wyświetlał się w czasie wyświetlania danych z obiektu (pomiędzy). Możliwe jest coś takiego??
Nie wiem dokładnie o co chodzi, ale wywołanie funkcji
sleep(0) (może Sleep(0) )
oznacza rezygnację z przydzielonego czasu (procesora).
Wtedy system przydzieli ten czas innemu wątkowi.
for(...)
{
Sleep(0); // 1ms
robota;
}
jesli uzywasz boost.thread to od tego jest thread.yield()