000
04.05.2004, 18:30 Uhr
MasterThomsen
|
Ich habe hier ein Problem mit nem Thread. Mache das zu ersten mal, also habe fast keine Ahnung.
So erstelle ich mir meinen Thread:
C++: |
#ifdef EEM_ENABLE if (mode != FREE_RUN && !(releaseJTAG)) _beginthread(MSP430_PollState(NULL), 0, NULL); #endif
|
Bereits bei der Funktion bekomme ich ein warning. Lasse ich "(NULL)" weg, wie ich dachte dass es richtig wäre, läufts gar nicht.
Meine Thread-Funktion schaut folgendermassen aus:
C++: |
void MSP430_PollState(void *arg) { LONG state; LONG CPUcycles; LONG CurrentAddress; LONG TraceValue; LONG Value;
while(1) { MSP430_State(&state, FALSE, &CPUcycles);
#ifdef VW_ENABLE MSP430_EEM_Read_Register_Test(0x009B, &CurrentAddress); CurrentAddress >>= 8; MSP430_EEM_Write_Register(0x009A, CurrentAddress);
MSP430_EEM_Read_Register_Test(0x009D, &TraceValue); TraceValue <<= 16; MSP430_EEM_Read_Register_Test(0x009D, &Value); TraceValue |= Value; CurrentAddress |= 0x03; MSP430_EEM_Write_Register(0x009A, CurrentAddress); MSP430_EEM_Read_Register_Test(0x009D, &Value);
if (!(Value &= 0x0001)) PostMessage((HWND)HandleDestWnd, (UINT)MessageID, VARIABLE_HIT, TraceValue); #endif
if (state != RUNNING) { PostMessage((HWND)HandleDestWnd, (UINT)MessageID, state, CPUcycles); _endthread(); } } }
|
Bei _endthread hängt sich das Programm irgendwie auf.
Meine Frage: Wie kann ich den Thread deaktivieren wenn ich die Funktion grad net brauch und wie beenden wenn ich den nie wieder brauche? |