is there a way without treads? I don't quite understand how to do it with threads

I was hoping there is something like "gps.CancelMove"
What I do have right now, looks like this:
while (GetGroupStatus("DoStuff"))
{
gps = new Gps(this);
gps.LoadDataBase(Application.StartupPath + "\\plugins\\plugin\\plugin.db3");
gps.onGpsPreMove += gpsPreMove;
gps.GpsMove(path);
}
So if I was thinking, that he would just move, while "DoStuff" is == true.
But unfortunately, he keeps moving even when "DoStuff" is == false.
Only completly killing the plugin by pressing "stop" in the manager, he stops moving
