private void ProcessImages(int id)
        {
            try
            {
                List <NetMq.Messages.ImageMessage> images = null;
                var watch = Stopwatch.StartNew();
                while (!IsDisposed)
                {
                    images = QueueImages.ToList().FindAll(item => item.BoxTrackingId == id);
                    if (images?.Count < 1)
                    {
                        Thread.Sleep(10);
                        if (watch.ElapsedMilliseconds > 5000)
                        {
                            break;
                        }
                    }
                    else
                    {
                        break;
                    }
                }

                if (images?.Count > 0)
                {
                    this.Log($"(Box)ID: {id} -> Processing {images?.Count} images...");

                    //****** HIER dann die Bildverarbeitung durchfuehren ******
                    //...
                    //...
                    // !!!In Abhaengigkeit der Konfigurationseinstellung wird aktuell entweder IO oder NIO zurueck gegeben!!!
                    var boxCheckState    = Config.ReturnBoxResultIo ? BoxCheckStates.IO : BoxCheckStates.NIO;
                    var boxFailureReason = Config.ReturnBoxResultIo ? BoxFailureReasons.BOX_FAILURE_NONE : BoxFailureReasons.BOX_FAILURE_UNKNOWN;
                    //...
                    //...
                    //****** ENDE ******

                    SendResult(id, boxCheckState, boxFailureReason);

                    this.Log($"(Box)ID: {id} -> Processing finished! BoxCheckState: {boxCheckState} / BoxFailureReason: {boxFailureReason}");
                }
            }
            catch (Exception exp)
            {
                LastException = exp;
            }
        }
        private void OnReceiveImageMessage(object sender, NetMQ.NetMQSocketEventArgs e)
        {
            bool more   = false;
            var  buffer = e.Socket.ReceiveFrameBytes(out more);

            if (!more)
            {
                var message = NetMq.Messages.BaseMessage.FromRawBuffer(buffer) as NetMq.Messages.ImageMessage;

                if (message != null)
                {
                    QueueImages.Enqueue(message);
                }

                while (QueueImages.Count > 10)
                {
                    NetMq.Messages.ImageMessage tmp;
                    QueueImages.TryDequeue(out tmp);
                }
            }
        }