Tak się zastanawiam czy błędnie nie podchodzę do tematu. Mam bibliotekę w której mam 3 funkcje i wątek. Dokładnie mówię o tej
sytuacji. Jednak zastosowanie wątku nic nie daje, aplikacja i tak się zwiesi. Przez zwieszenie rozumiem, że jak nacisnę button1 to dopóki się nie zakończy wątek nie nacisnę buttona2. Jak rozwiązać tą sytuację.
Do tej pory pisałem jeden program, oparty na wątkach jest on notabene do ściągnięcia z serwisu. Była tam stara metoda wykorzystania wątków opisana w poradach Cyforwego i wszystko chodziło cacy. Teraz próbuję zastosować TThread i coś mi nie wychodzi.
Druga sprawa, która mnie zastanawia czy jak chcę pisać aplikacje oparte na wątkach nie lepiej zamiast funkcji stosować metody. Czyli zamiast:
- Kod: Zaznacz cały
#ifndef biblioteka_hpp
#define biblioteka_hpp
#include <string>
#include "grafik.h"
//prototypy funkcji
std::string F1(std::string const lancuch);
std::string F2(std::string const URL);
void F3(std::string &lancuch);
void F4(std::string &lancuch);
//Klasa Wątek ----------------------------------------------------
class Watek : public TThread{
//WAŻNE BY ZMIENIĆ NAZWĘ TForm NA TAKĄ JAKA JEST U CIEBIE W PROJEKCIE
TForm4 *tForm;
protected:
void __fastcall Synchro(void);
void __fastcall Execute(void);
public:
// __fastcall myThread(TForm1 *Form);
//WAŻNE BY ZMIENIĆ NAZWĘ TForm NA TAKĄ JAKA JEST U CIEBIE W PROJEKCIE
Watek(TForm4 *_form):TThread(true), tForm(_form){}
// std::string Url, stronaWWW;
};
#endif
- Kod: Zaznacz cały
#ifndef biblioteka_hpp
#define biblioteka_hpp
#include <string>
#include "grafik.h"
//Klasa Wątek ----------------------------------------------------
class Watek : public TThread{
//WAŻNE BY ZMIENIĆ NAZWĘ TForm NA TAKĄ JAKA JEST U CIEBIE W PROJEKCIE
TForm4 *tForm;
protected:
void __fastcall F1(void);
void __fastcall F2(void);
void __fastcall F3(void);
void __fastcall F4(void);
void __fastcall Execute(void);
public:
// __fastcall myThread(TForm1 *Form);
//WAŻNE BY ZMIENIĆ NAZWĘ TForm NA TAKĄ JAKA JEST U CIEBIE W PROJEKCIE
Watek(TForm4 *_form):TThread(true), tForm(_form){}
// std::string Url, stronaWWW;
};
#endif