x aantal class methods te gelijk

Status
Niet open voor verdere reacties.

Tomboman

Gebruiker
Lid geworden
15 feb 2013
Berichten
32
Ik heb 2 objecten, die ik een funtie wil laten uitvoeren.
Deze functie wordt automatisch herhaalt door middel van while(1==1).
Alleen nu wil ik dat de 2 objecten hun functies te gelijk worden uitgevoerd. Alleen dit krijg ik niet voor elkaar, heeft iemand hier een voorbeeld van?

Mijn code tot nu toe:

Code:
Reizen reizenNl = new Reizen("Nederland", webBrowser1);
Reizen reizenDe = new Reizen("Duitsland", webBrowser2);

reizenDe.Haalop();
reizenNl.Haalop();

Maar nu wordt de reizenNl.Haalop() niet uitgevoerd, omdat de reizenDe.Haalop() oneindig wordt herhaalt.
Het herhalen moet ook gebeuren, maar ze moeten allebei uitgevoerd worden.

Ik wil het aantal landen later ook nog uitbreiden.


Ook wordt er in deze methoden gebruik gemaakt van Thread.Sleep(30000); alleen dit werkt over de hele applicatie, hoe kan ik zorgen dat het alleen voor het object/methode werkt?
 
Laatst bewerkt:
Misschien de while uit de method halen en een stap hoger uitvoeren.

Code:
public void Start()
{
    while (true)
    {
        //collect NL
        //collect DE
    }
}


Als je zo iets als dit ziet zou je aan abstract classes / interfaces kunnen gaan denken en een apparte class die de uitvoering doet.

Code:
public class Processor
{
	private List<Destination> _destinations;

	public Processor()
	{
		_destinations = new List<Destination>();
	}

	public void Add(Destination destination)
	{
		_destinations.Add(destination);
	}

	public void Start()
	{
		while (true)
		{
			foreach (var destination in _destinations)
			{
				destination.Collect();
			}
		}
	}
}


Code:
public abstract class Destination 
{
	public abstract void Collect();
}

(als je hier een meer uitgebreid voorbeeld van wilt kan ik later nog wel iets dat werkt in elkaar zetten)





Wat betreft het Thread.Sleep gedeelte... je zou hierbij moeten denken aan threading zodat al het verzamelen (of wat je dan ook doet) allemaal op de achtergrond plaatsvind.
(de backgroundworker class is goed om eens te beginnen http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx )



p.s. het uitbreiden is zo ook een heel stuk makkelijker (nieuwe class & 1 regel code)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan