public void FinishProcessing(PathResponse pathResponse)
 {
     if (multiThreading)
     {
         //Add New Result To Queue Result To Call Back it
         lock (_results)
         {
             _results.Enqueue(pathResponse);
         }
     }
     else
     {
         pathResponse.callBack(pathResponse.path, pathResponse.succes);
     }
 }
    // Call back The Result to Each Agent Request
    void CallBackTheResult()
    {
        if (_results.Count > 0)
        {
            lock (_results)
            {
                for (int i = 0; i < _results.Count; i++)
                {
                    PathResponse pathResponse = _results.Dequeue();

                    pathResponse.callBack(pathResponse.path, pathResponse.succes);
                }
            }
        }
    }