ptsopors2009 Posted March 6, 2009 at 01:03 PM Report Share #248649 Posted March 6, 2009 at 01:03 PM Bom Dia , Antes de mais felicito os autores deste site é um excelente projecto na lingua de camões. Venho pedir ajuda em relação a um formulário de espera, estou a criar um formulario que pesquisa as intancias e bases de dados SQL existentes, o problema surge quando crio um outro formulario com uma progressbar que é exectuda paralelamente enquanto os dados são carregadoso a questão é que continua a surgir a mensagem "não responde" passado alguns segundos lá termina o processo. A ideia é ter um formulário de espera enquanto os dados da pesquisa do servidor é carregado. Em baixo coloco o código que estou a usar: private void FormAbrirBaseDadosSql_Load(object sender, EventArgs e) { Thread tempo_espera = new Thread(Tarefa_Espera); tempo_espera.IsBackground = true; tempo_espera.Start(); DateTime inicio = DateTime.Now; //Tarefa_Espera(); int n = 0; DataTable L = new DataTable(); L = Instancia.Lista_Instancias(); foreach (DataRow linha in L.Rows) { listaSqlServerInstancias.Items.Add(linha["ServerName"] + "\\" + linha["InstanceName"]); //listaSqlServerInstancias.Items.Add(linha["ServerName"] + " - " + linha["InstanceName"] + " - " + linha["Version"]); listaSqlServerInstancias.SelectedIndex = n; instancia_sql = listaSqlServerInstancias.Text; DataTable ListaBaseDados = new DataTable(); ListaBaseDados = Instancia.Lista_Base_dados(instancia_sql); if (n == 0) { foreach (DataRow linha2 in ListaBaseDados.Rows) { lista_base_dados.Items.Add(linha2["Database_Name"]); } } n = +1; } cronometro.Text = Convert.ToString(DateTime.Now.Subtract(inicio)); } private void Tarefa_Espera() { FormEspera f = new FormEspera(); f.Show(); f.Refresh(); int i, num; num = 100; for (i = 0; i < num; i++) { Thread.Sleep(50); f.progressBar1.Maximum = num; f.progressBar1.Value += 1; } f.Hide(); f.Dispose(); } Obrigado Link to comment Share on other sites More sharing options...
Cybernavigator Posted March 9, 2009 at 03:09 AM Report Share #249315 Posted March 9, 2009 at 03:09 AM Não sei porque te dá esse erro, mas aproveito pra corrigir outro. if (n == 0) { foreach (DataRow linha2 in ListaBaseDados.Rows) { lista_base_dados.Items.Add(linha2["Database_Name"]); } } n = +1; é n += 1; isto se queres incrementar, se queres dar o valor 1 à variavel n, como tens também dá. Cumps Melhores cumprimentos,João Lopes***Esta mensagem foi escrita ao abrigo do novo Acordo Ortográfico*** Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now