private void lookupThreadProc()
        {
            working.Reset();

            if (!DatabaseUtility.CheckConnectivity())
            {
                done            = true;
                sqlConnectError = true;
                working.Set();
                return;
            }

            Conference[] confs = DatabaseUtility.GetConferences();
            this.conferenceData = new ArrayList();

            participantCount = DatabaseUtility.CountParticipants();
            if (participantCount < 1)
            {
                done            = true;
                sqlConnectError = false;
                working.Set();
                return;
            }

            currentParticipant = 0;

            foreach (Conference c in confs)
            {
                if (stopNow)
                {
                    break;
                }
                ConferenceWrapper cw = new ConferenceWrapper();
                cw.Conference   = c;
                cw.Description  = "Conference: " + c.Start.ToString() + " - " + c.Description;
                cw.Participants = new ArrayList();

                Participant[] participants = DatabaseUtility.GetParticipants(c.ConferenceID);
                foreach (Participant part in participants)
                {
                    if (stopNow)
                    {
                        break;
                    }
                    ParticipantWrapper pw = new ParticipantWrapper();

                    pw.Description   = "Participant: " + part.CName;
                    pw.Participant   = part;
                    pw.StreamGrouper = new StreamGrouper(part.CName);

                    //Here is the slow part:
                    Stream[] streams = DatabaseUtility.GetStreams(part.ParticipantID);
                    currentParticipant++;

                    if (streams == null)
                    {
                        continue;
                    }

                    foreach (Stream str in streams)
                    {
                        pw.StreamGrouper.AddStream(str);
                    }

                    //Only show the participants that sent some supported data
                    if (pw.StreamGrouper.GroupCount > 0)
                    {
                        cw.Participants.Add(pw);
                    }
                }

                conferenceData.Add(cw);
            }
            done = true;
            working.Set();
        }