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); } }