There are several download requests which i want to serve one by one and for this reason i am using Queue. Here is the list, which is populating from different scripts at different times

```
 public Queue<WebDownloader> webDownloaderQ;

```

A public method allow to different scripts/resource to populate the queue dynamically at different times:

```
 public void EnqueABDownloading(WebDownloader abToDownload)
    {
        singleAbLoader.Enqueue(abToDownload);
    }

```

The download starts quickly as it found even a single que object, (Remember during this time queue can be incremented),

```
     public void StartDownloading()
        {
            //while (singleAbLoader.Count > 0)
            //{
            //    singleAbLoader.

            //}

            for (int i = 0; i < singleAbLoader.Count; i++)
            {
                singleAbLoader[i].//this is not supporting unable to call my method
//I want to call one of the function (startdowloaind) of WebDownloader before the deque 
            }
        }

```

I tried to write above function for downloading but the problem is, i dont know how to do this. I tried to used index with the object it saying cannot apply indexing with to an expression of type Queue.

**EDIT:**

**Remember**: I want to call one of the function (`StartDowloaind`) of `WebDownloader` before the Dequeue the object. 

I want to first enqueue the request, the reason is that every request will take sometime to download. Therefore,

1. first enqueue the download request
2. then, check download loop is running or not if not then, initiate
the loop
3. As specific download complete dequeue the request.