/// <summary>
 /// Starts processing a tile now
 /// </summary>
 private void StartTileProcessing(DynamicTileBuilderRequest request)
 {
     busy = true;
     RawSendMessage(0, new Dictionary <string, byte[]>
     {
         { "REQUEST", Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(request)) }
     });
 }
 /// <summary>
 /// Adds a tile to the queue. Public API
 /// </summary>
 /// <param name="request"></param>
 public void ProcessTile(DynamicTileBuilderRequest request)
 {
     //If this is not busy, run now. If it is, queue it
     if (!busy)
     {
         StartTileProcessing(request);
     }
     else
     {
         pending.Enqueue(request);
     }
 }