예제 #1
0
        /// <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");
        }
예제 #3
0
 /// <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);
 }