public void AddSchokoHase(SchokoHase schokoHase) { lock (_schokoHasen) { lock (_waitForSchokoHase) { while (_waitForSchokoHase.Count > 0 && schokoHase != null) { IOsterFabrikCallback callback = _waitForSchokoHase.Dequeue(); if (IsCommunicationOpened(callback)) { try { callback.ReturnSchokoHase(schokoHase); schokoHase = null; } catch (Exception ex) { Console.WriteLine(ex.ToString()); } } } } if (schokoHase != null) { _schokoHasen.Enqueue(schokoHase); NotifySchokoHasen(); } } }
public void LookForSchokoHase() { IOsterFabrikCallback callback = GetCallbackChannel(); lock (_schokoHasen) { if (_schokoHasen.Count > 0) { SchokoHase hase = _schokoHasen.Dequeue(); try { callback.ReturnSchokoHase(hase); NotifySchokoHasen(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); _schokoHasen.Enqueue(hase); } } else { lock (_waitForSchokoHase) { _waitForSchokoHase.Enqueue(callback); } } } }
public void AddSchokoHase(SchokoHase schokoHase) { lock (_schokoHasen) { lock (_waitForSchokoHase) { while (_waitForSchokoHase.Count > 0 && schokoHase != null) { IOsterFabrikCallback callback = _waitForSchokoHase.Dequeue(); if (IsCommunicationOpened(callback)) { try { callback.ReturnSchokoHase(schokoHase); schokoHase = null; } catch (Exception ex) { Console.WriteLine(ex.ToString()); } } } } if (schokoHase != null) { _schokoHasen.Enqueue(schokoHase); NotifySchokoHasen(); } } }