public DataDBURLQueue(string dbConnectionString, int maxthreads, int mode=0)
        {
            //обновляем ссылку на подключение к базе для всяких асинхронных передач данных в духе ошибок
            ddbs = new DataDBAsynchService(dbConnectionString);
            //получаем задания на парсинг
            jobs = new DataDBURLJobs(ddbs, mode,false);
            this.max_threads = maxthreads;
            //jobs.SetJobToStartOrStop(true);
            t_fill = new System.Timers.Timer();
            t_fill.Elapsed += new System.Timers.ElapsedEventHandler(fill_timer);
            t_fill.Interval = 30000;
            t_restart = new System.Timers.Timer();
            t_restart.Elapsed += new System.Timers.ElapsedEventHandler(restart_timer);
            //рестартить раз в 12 часов
            t_restart.Interval = 12*1000*60*60;
            this.mode = mode;
            bws = new BackgroundWorker[max_threads];
            states = new WOrkingThreadState[max_threads];

            pq = new DataDBCollector.PhotoQueue(ddbs);
            //ThreadPool.SetMaxThreads(40, 40);
        }
        public NewDataDBURLQueue(string dbConnectionString, int maxthreads, int mode=0)
        {
            //обновляем ссылку на подключение к базе для всяких асинхронных передач данных в духе ошибок
            ddbs = new DataDBAsynchService(dbConnectionString);
            //получаем задания на парсинг
            jobs = new DataDBURLJobs(ddbs, mode,false);
            this.max_threads = maxthreads;
            this.mode = mode;
            bws = new AbortableBackgroundWorker[max_threads];
            states = new WOrkingThreadState[max_threads];

            pq = new DataDBCollector.PhotoQueue(ddbs);
            //ThreadPool.SetMaxThreads(40, 40);
        }