Esempio n. 1
0
        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();
                }
            }
        }
Esempio n. 2
0
        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);
                    }
                }
            }
        }
Esempio n. 3
0
        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();
                }
            }
        }