Ejemplo n.º 1
0
        private void Enqueue(SearchJob job)
        {
            var host = job.Link.Uri.Host;

            lock (_LockFoundHostNames)
            {
                if (_foundHostNames.Contains(host))
                {
                    return;
                }
            }

            var prio        = _priority.GetPrio(job);
            var absoluteUri = job.Link.Uri.AbsoluteUri;

            if (prio > _Threshold)
            {
                return;
            }

            lock (_LockVisited)
            {
                if (_visited.Contains(absoluteUri))
                {
                    return;
                }

                _visited.Add(absoluteUri);
                _queue.Enqueue(job, prio);
            }
        }