Vlákno - Thread – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Vlákno - Thread – C / C++ – Fórum – Programujte.comVlákno - Thread – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Kenvelo+2
Super člen
24. 11. 2014   #1
-
0
-

Zdravím mám ve třídě Couter funkci void cas(); a potřeboval bych dát tuto funkci do vlákna když napíšu funkci čistě v mainu tak nemám problém přiřadit funkci do vlákna ale když je ve třídě už s tím mám problém : viz kod

//_______________ Counter.h_________
class Counter
{
 .....
  void cas();
};

//_______________ Counter.cpp_________

void Counter::cas()
{
   for (;;)
      {
	static int a;
	if (a >= 60) { a = 0; }
	Sleep(1000);
	++a;
	cout << a << endl;
      }
}

//_______________ Source.cpp_________
.....
int main()
{
.....
Counter Pocitadlo;

thread Vlakno1(Pocitadlo.cas());
Vlakno1.join();
.....
}

ale když kod napíšu čistě v mainu takto 

________Source.cpp____

void cas()
{
   for (;;)
      {
	static int a;
	if (a >= 60) { a = 0; }
	Sleep(1000);
	++a;
	cout << a << endl;
      }
}

int main()
{
   ........
   thread Vlakno1(cas);
   Vlakno1.join();
   .......
}

Předem díky za radu.

Nahlásit jako SPAM
IP: 89.177.211.–
Díky bohu, že počítače vymysleli muži. Kdyby to byly ženy, tak binární soustavu reprezentují jedničky, nuly a "možná"
Kenvelo+2
Super člen
24. 11. 2014   #2
-
0
-

Popřípadě jestli můžu poprosit o názorný příklad děkuji   

Nahlásit jako SPAM
IP: 89.177.211.–
Díky bohu, že počítače vymysleli muži. Kdyby to byly ženy, tak binární soustavu reprezentují jedničky, nuly a "možná"
ondrej39+1
Věrný člen
24. 11. 2014   #3
-
0
-

Tak vůbec první chyba je ta, že ti chybí při vyvolávání f-ce čas kulatý závorky. Ale na programování jsem blbej, takže chyba na 99% bude někde úplně jinde.

Nahlásit jako SPAM
IP: 195.113.207.–
Inject all the dependencies!
Kenvelo+2
Super člen
24. 11. 2014   #4
-
0
-

#3 ondrej39
Právě že druhý zdroják co sem napsal funguje bez problému

Nahlásit jako SPAM
IP: 89.177.211.–
Díky bohu, že počítače vymysleli muži. Kdyby to byly ženy, tak binární soustavu reprezentují jedničky, nuly a "možná"
KIIV
~ Moderátor
+43
God of flame
24. 11. 2014   #5
-
0
-

ono je trochu problem, predat clenskou funkci (jeste k tomu se zavorkama bys ji zavolal)

muzes zkusit treba  std::bind(&Counter::cas, &Pocitadlo)  (pripadne boost::bind pokud nemas -std=c++0x / 11)

(ta 2011 thread class by to mela sezrat)

Nahlásit jako SPAM
IP: 94.113.95.–
Program vždy dělá to co naprogramujete, ne to co chcete...
crazy
~ Moderátor
+10
Grafoman
24. 11. 2014   #6
-
0
-

#5 KIIV
myslím, že by to mělo fungovat i bez bind

thread Vlakno1(&Counter::cas, Pocitadlo)

někde, jsem to tak viděl, ale ted to nemuzu overit.

Nahlásit jako SPAM
IP: 89.103.111.–
All you need is vision and time.
KIIV
~ Moderátor
+43
God of flame
24. 11. 2014   #7
-
0
-

#6 crazy
vsak kenvelo si to otestuje :)

Nahlásit jako SPAM
IP: 94.113.95.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Kenvelo+2
Super člen
25. 11. 2014   #8
-
0
-

#6 crazy 

#7 KIIV

Fungují oba příklady  ....  Děkuji všem ;) 

Nahlásit jako SPAM
IP: 89.177.211.–
Díky bohu, že počítače vymysleli muži. Kdyby to byly ženy, tak binární soustavu reprezentují jedničky, nuly a "možná"
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 121 hostů

Podobná vlákna

Thread C++ — založil Kenvelo

Kill thread — založil Tayson

Thread aplikace — založil GeorgeW

Thread.sleep() — založil JanH

Wxpython a thread — založil ondrav

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý