Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako da lepo "zamolim" Symbian da mi kreira thread?

[es] :: Embedded sistemi :: Kako da lepo "zamolim" Symbian da mi kreira thread?

[ Pregleda: 3066 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

talentovanolenj
Miroslav Pajic
NS

Član broj: 86738
Poruke: 4
*.dynamic.sbb.co.yu.



Profil

icon Kako da lepo "zamolim" Symbian da mi kreira thread?27.03.2007. u 13:12 - pre 207 meseci
Pozdrav svima,

1. Pokusavam vec izvestan broj sati/dana da resim i ukomponujem ovo tako da bi svaki savet dobrodosao a kamoli resenje

Dakle napisao sam ovako:

TThreadFunction threadFunction = ThreadPrivateActions::aFunction((TAny *)this);
const TInt KMinHeapSize = 0x1000;
const TInt KMaxHeapSize = 0x1000000;
RThread().Create(name, threadFunction, KDefaultStackSize, KMinHeapSize, KMaxHeapSize, (void*) this);

Klasa 'ThreadPrivateActions' samo sadrzi f-ju kojoj je "potpis" sledeci: static TInt aFunction(TAny *data) {...blabla...}

Javlja mi kompajlersku gresku:
illegal implicit conversion from 'int' to 'int (*)(void *)'

sto stvarno i jeste ocigledno istina, ali ja ne znam kako da ovo resim, sta da stavim...

2. Usput, da li je uopste sigurno da stavim onaj opseg za heap i deafult stack size za stek?

Thanx,
m.






"Optimism is essential to achievement and it is also the foundation of courage and true progress."
 
Odgovor na temu

nikoladsp
nikola radovanovic
trenutno-developer
novi sad

Član broj: 5455
Poruke: 193
*.ns.ac.yu.



Profil

icon Re: Kako da lepo "zamolim" Symbian da mi kreira thread?27.03.2007. u 14:03 - pre 207 meseci
znaci u tvoju klasu koja ce "drzati" thread dodas funkciju:
Code:

//... *.H fajl

...

protected:

    static TInt ThreadFunction(TAny *aPtr);

    RThread iThread;
    TInt iSomeInt;

//... *.CPP fajl

...
void ConstructL() {

...

    iSomeInt = 99; // inicijalizacija neke dummy promenljive
    _LIT(KThreadName, "Some Thread");

    iThread.Create(KThreadName, threadFunction, 4096, KMinHeapSize, 256*KMinHeapSize, &iSomeInt);
    iThread.Resume();
}

...

TInt CHelloWorldBasicAppUi::ThreadFunction(TAny *aPtr) {

    TInt* i = (TInt*)aPtr; // sada i pokazuje na iSomeInt 

    return 0;
}


ovo je najseljackija moguca varijanta

poz
ja sam panker sa diplomom kod moje mame...
 
Odgovor na temu

talentovanolenj
Miroslav Pajic
NS

Član broj: 86738
Poruke: 4
*.dynamic.sbb.co.yu.



Profil

icon Re: Kako da lepo "zamolim" Symbian da mi kreira thread?29.03.2007. u 09:05 - pre 207 meseci
Hvala niskoladsp,ali ovaj predlog mi zestoko menja design pa cu morati jos da razmislim.

Inace, napravio sam malu egzibiciju i doziveo Symbian "prosvetljenje" :)
Ako stavim thread fju van moje klase ThreadPrivateActions kao globalnu i ne static, prosledim taj pointer,
onda create(...) radi, kompajler prolazi. Naravno ovo treba zaista testirati jos.
Ali npr. u WinApi mogu da prosledim static pointer na fju kad otvaram thread, a u Symbianu ne. Ne razumem bas.

Svejedno, ovo mi opet menja design, a takodje je seljacka varijanta. Sad treba da izaberam manje seljacku varijantu :)

Ako neko zna kako bi se ovo moglo efikasnije uraditi, placam pivo !

poz svima,
m.
"Optimism is essential to achievement and it is also the foundation of courage and true progress."
 
Odgovor na temu

[es] :: Embedded sistemi :: Kako da lepo "zamolim" Symbian da mi kreira thread?

[ Pregleda: 3066 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.