/// <summary> /// Gibt das nächste verfügbare Projekt zurück, welches bearbeitet werden /// kann. Sollten bereits alle Projekte in der Bearbeitung sein, wird solange verzögert, /// bis ein Projekt ansteht um bearbeitet werden zu können. /// </summary> /// <returns>Projekt welches bearbeitet werden kann.</returns> public async Task <Projekt> CheckoutZumBearbeitenAsync() { Projekt projektZumBearbeiten = null; while (!zuBearbeitendeProjekte.TryDequeue(out projektZumBearbeiten)) { await Task.Delay(TimeSpan.FromSeconds(1)); } projektZumBearbeiten.IstInBearbeitung = true; return(projektZumBearbeiten); }
private async Task Entwickeln(Projekt projekt) { //SiAuto.Main.EnterThread("Entwickler.Entwickeln-Task"); SiAuto.Main.EnterMethod(this, "Entwickeln - " + Name); AktuelleAufgabe = Beschaeftigung.Entwickeln; await projekt.Entwickeln(Name); AktuelleAufgabe = Beschaeftigung.Lernen; SiAuto.Main.LeaveMethod(this, "Entwickeln - " + Name); //SiAuto.Main.LeaveThread("Entwickler.Entwickeln-Task"); }
/// <summary> /// Sobald ein Projekt bearbeitet ist, muss es über diese Methode wieder am Dashboard /// eingecheckt werden um weiter- bzw. nochmals bearbeitet zu werden. /// </summary> /// <param name="bearbeitetesProjekt">Das Projekt welches (teilweise) bearbeitet wurde.</param> public void CheckinNachBearbeitung(Projekt bearbeitetesProjekt) { bearbeitetesProjekt.IstInBearbeitung = false; zuBearbeitendeProjekte.Enqueue(bearbeitetesProjekt); }