public void VerificacaoVagaEscolhida()
        {
            if (VerificacaoVagaEscolhidaIniciada)
            {
                return;
            }
            VerificacaoVagaEscolhidaIniciada = true;
            Task rotinaVerificacao = new Task(() =>
            {
                while (1 == 1)
                {
                    while (!ContinuarVerificacaoVagaEscolhida)
                    {
                        Thread.Sleep(500);
                    }
                    try
                    {
                        JObject vaga = null;
                        using (WebClient wc = new WebClient())
                        {
                            wc.Headers.Add(HttpRequestHeader.ContentType, "application/json");
                            string url = ControladorMapa.ParkingManagerServerURL + "api/VagaModels/" + VagaEscolhida.Dados.Value <long>("Id");

                            string vagasJsonText = wc.DownloadString(url);
                            vaga = (JObject)JsonConvert.DeserializeObject(vagasJsonText);

                            var ocupacao        = vaga["Ocupacao"];
                            var dadosAnteriores = VagaEscolhida.Dados;
                            VagaEscolhida.Dados = vaga;
                            if (ocupacao.Type != JTokenType.Null)
                            {
                                CustomEventHandlerMudancaEstadoVaga handler = VagaEscolhidaMudouEstadoEvent;
                                if (handler != null)
                                {
                                    AtividadePai.RunOnUiThread(() =>
                                    {
                                        handler(null, new EventArgsMudancaEstadoVaga(VagaEscolhida, vaga, (JObject)dadosAnteriores));
                                    });
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                    }


                    Thread.Sleep(3000);
                }
            }
                                              );

            rotinaVerificacao.Start();
        }
        public void VerificacaoVagas()
        {
            if (VerificacaoVagasIniciada)
            {
                return;
            }
            VerificacaoVagasIniciada = true;
            Task rotinaVerificacao = new Task(() =>
            {
                while (1 == 1)
                {
                    while (!ContinuarVerificacaoVagas)
                    {
                        Thread.Sleep(500);
                    }
                    try {
                        if (AtividadePai.ControleMapa.VagasColocadas != null && AtividadePai.ControleMapa.VagasColocadas.Count > 0)
                        {
                            Parallel.ForEach(AtividadePai.ControleMapa.VagasColocadas, new ParallelOptions()
                            {
                                MaxDegreeOfParallelism = -1
                            }, (VagaAnalisar) =>
                            {
                                try
                                {
                                    JObject vaga = null;
                                    using (WebClient wc = new WebClient())
                                    {
                                        wc.Headers.Add(HttpRequestHeader.ContentType, "application/json");
                                        string url = ControladorMapa.ParkingManagerServerURL + "api/VagaModels/" + VagaAnalisar.Dados.Value <long>("Id");

                                        string vagasJsonText = wc.DownloadString(url);
                                        vaga = (JObject)JsonConvert.DeserializeObject(vagasJsonText);

                                        var ocupacao        = vaga["Ocupacao"];
                                        var dadosAnteriores = VagaAnalisar.Dados;
                                        VagaAnalisar.Dados  = vaga;

                                        if ((ocupacao.Type != dadosAnteriores["Ocupacao"].Type) || (ocupacao.Type != dadosAnteriores["Reserva"].Type))
                                        {
                                            CustomEventHandlerMudancaEstadoVaga handler = VagaMudouEstadoEvent;
                                            if (handler != null)
                                            {
                                                AtividadePai.RunOnUiThread(() =>
                                                {
                                                    handler(null, new EventArgsMudancaEstadoVaga(VagaAnalisar, vaga, (JObject)dadosAnteriores));
                                                });
                                            }
                                        }
                                    }
                                }
                                catch (Exception ex)
                                {
                                }


                                Thread.Sleep(3000);
                            }
                                             );
                        }
                        else
                        {
                            Thread.Sleep(500);
                        }
                    }catch (Exception ex)
                    {
                    }
                }
            }
                                              );

            rotinaVerificacao.Start();
        }