progressBar de gente grande

Galera…alguem já conseguiu fazer uma progressbar que realmente monitore um processo como por exemplo…carregamento de um arquivo ou uma pesquisa em sql pesada ou mesmo qualquer processo pesado?..se souber poderia postar aqui?, vi que assim como eu, muita gente esta de saco cheio de ver exemplos de progressbar com um contador de 0 a 1000 q no fim não ajuda em nada…ou mesmo usando indeterminate(true).que acaba so gerando uma distração enqt a coisa acontece…vlw

Você tem como parametrizar a consulta SQL “pesada”, saber em que estágio ela está? Ou como saber em passo está o “processo pesado”? Se não tiver, sua pergunta é infundamentada, pois você quer que o progress bar adivinhe a situação.
Diferentemente, o upload de um arquivo pode ter uma estatística mais real, pois você consegue saber o tamanho do arquivo e consegue saber quantos bytes você já recebeu.

Java é bom mas não é clarividente.

Até!

Acho melhor ter uma barrinha indo e vindo (animada) do que travar a máquina e o usuário se perguntar: “Travou?”, ou até mesmo xingar o sistema.

Agora, como o nosso amigo maquiavelbona falou, você precisa de algumas informações para ter uma progressBAR com valores decentes:

  • Qual o valor inicial;

  • Qual o valor final;

  • E em qual valor você está, e se dá para monitorar o avanço do mesmo;

Assim, se você copiar um arquivo, você pode saber que o inicial é 0, o final é o tamanho do arquivo, e a posicao atual é quantos bytes você já copiou.

Da mesma forma, se for internet, quantos bytes você baixou.

Já em uma consulta SQL, fica complicado pois você só tem uma instrução executarSQL e o tempo que o BD precisa pra responder, você não consegue monitorar (pelo menos não conheço nada nesse sentido), por isso, existe a solução indeterminate(true).

afinal, eu sempre gostei do indeterminate. o que ele tem de errado?

espero ter ajudado.

sds

Você consegue determinar o tempo que seu algoritmo levará para executar?
Esse tempo é o 100% certo?
E o tempo inicial é o 0%.

Agora, o tempo exato de execução de um algoritmo é impossível de ser calculado, se vc conseguir calcular publique um artigo científico :lol:

Então acho q vc terá q fazer uma heuristica, ou o tempo médio que o algoritmo leva para executar.
Mas acho q isso vai te dar o maior trabalho… ehehehe

Galera…achei as respostas mais fantasiosas dq a minha pergunta…achei bem legal a sugestao do sql mas é extremamente óbvia…pedi para darem respostas concretas…que algo tem de ser monitorado todos nos sabemos…poxa

Fantasiosas não, as dúvidas deles foram pertinentes!Os exemplos vão de 0 a 1000 por que são ilustrativos.Se vc sabe o que vai monitorar, quando começa e quando termina, pq vc não agenda uma thread com essa progress bar com o tempo de execução do seu processo???Ou seja, o contador é o tempo de execução da sua tarefa.

O que você está criticando, se você já sabia a resposta?
Não tem como adivinhar quanto vai durar uma pesquisa, pois o cliente não sabe qual a complexidade da query, como está a carga do servidor, a conexão da rede, etc.
Não tem como saber da característica de um processo se você não colocar flags para saber onde ele está. O compilador não sabe só de compilar quanto tempo vai demorar para executar algo, oras.

As respostas não foram fantasiosas, foram reais a sua pergunta, que essa sim, fantasiosa. Clarividência é com o “Terreiro Roça de Obaluae” (by anúncio do MetroNews).

Até!

Olha só…se fui rude me desculpem mas não acho que fui infeliz no comentário…essa duvida já virou uma discusão e perdeu o sentido…vu postá-la em um forum que possua pessoas mais receptivas, obrigado.