Idiotismus im Algorythmus

Developer_X

Top Contributor
HI.
Ich habe eine Frage.

Ich habe diesen Code hier :
Java:
	public void checkClick(int component)
	{
		click = true;
		
		if(component==-1)
		{
		}
		else
		{
			if(area==1)
			{
				if(component==1)
				{
					startGame();
				}
				else if(component==2)
				{
					area++;
				}
			}
			else if(area==2)
			{
				if(component==1)
				{
					stop();
				}
				else if(component==2)
				{
					area--;
				}
			}
		}
		click = false;
	}

Wenn ich unten die Variable >>area<< ausgeben lasse, dann kommt immer 1 raus, also geht kein Weg dran vorbei.

Ich habe einen Thread nebenbei laufen, und der arbeitet mit area.
Da dachte ich mir, vielleicht hat der ja etwas damit zu tun.
Also ging ich ans Werk, und erlaube im Thread der Methode die mit >>area<< arbeitet nur zu laufen, wenn click false ist.

Und trotzdem kommt immer area = 1 raus, auch wenn der component 2 ist, warum?
 
T

Tomate_Salat

Gast
ich versteh deine Frage nicht wirklich, aber so händelt man auch eigentl. kein multithreading :-/

Anmerkung
Hdi hat das in seinem Youtube-Video ausführlich erklärt:

der Thread könnte schon in den Prozess eingreifen und danach wird erst deine Methode false gesetzt. Also arbeite besser mit [c]syncronize[/c] (ohne IDE schreib ich das glaub immer iwie falsch :D)
 
T

Tomate_Salat

Gast
xD sag ich ja, ohne IDE bekomme ich das Wort NIE zu stande. Auch wenn ich nicht viel multithreading betreibe, muss mich die IDE jedes mal korigieren ^^
 

The_S

Top Contributor
Der Müde Joe hat das absichtlich gemacht, da auch Algorithmus falsch geschrieben war. Und es heißt nicht einzigste ;) .

zu langsam ...
 

Ähnliche Java Themen

Neue Themen


Oben