elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  El form se congela cuando añado un row a mi datagriview.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: El form se congela cuando añado un row a mi datagriview.  (Leído 2,298 veces)
nevachana

Desconectado Desconectado

Mensajes: 61


Ver Perfil
El form se congela cuando añado un row a mi datagriview.
« en: 7 Septiembre 2015, 14:57 pm »

Hola   :) , tengo un problema,cuando añado varios rows a mi datagridview en poco tiempo,el form crashea.

1. Para acceder desde otras clases al form tengo una variable,a la cual le doy un valor cual el form carga.
Código
  1.   private void Form1_Load(object sender, EventArgs e)
  2.        {
  3.            Tools.doubleForm = this;
  4. }
2. Después,cada vez un cliente se conecta a mi servidor lo añado al grid.

Código
  1. Tools.updateUsersForm("Client", ip, Tools.GetCountry(ip), "ok", "windows");
  2.  
  3.  
  4.  public static void updateUsersForm(string name, string ip, string country, string status, string os)
  5.        {
  6.            doubleForm.editGrid(name, ip, country, status, os);        
  7.        }
  8.  
  9.  
  10.  
  11.  public void editGrid(string name, string ip, string country, string status, string os)
  12.        {
  13.             this.zombieGrid.Rows.Add(new string[]{name,ip,country,status,os});
  14.  
  15.        }

Será que doy muchas "vueltas"?
Gracias.


En línea

kondrag_X1

Desconectado Desconectado

Mensajes: 157


Ver Perfil
Re: El form se congela cuando añado un row a mi datagriview.
« Respuesta #1 en: 7 Septiembre 2015, 21:02 pm »

ami me pasó lo mismo y lo solucioné añadiendo un delegado cuando añado una fila.


En línea

nevachana

Desconectado Desconectado

Mensajes: 61


Ver Perfil
Re: El form se congela cuando añado un row a mi datagriview.
« Respuesta #2 en: 7 Septiembre 2015, 21:30 pm »

ami me pasó lo mismo y lo solucioné añadiendo un delegado cuando añado una fila.

Nunca lo he usado,me darías un ejemplo?
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: El form se congela cuando añado un row a mi datagriview.
« Respuesta #3 en: 7 Septiembre 2015, 23:10 pm »

En el título mencionas que se congela (se freezea) pero luego mencionas que se crashea (se finaliza anormálmente el proceso). ¿Puedes aclarar qué es lo que ocurre realmente de esas dos cosas?.

Que se congele el Form sería lo más normal, ya que si tienes el control en el thread de la UI y realizas una operación "intensiva", hasta que no termine lo que hagas en el control no puede seguir de forma regular el flujo de la UI.

Prueba a añadir los elementos de forma asíncrona en el mismo hilo, o añadir los elementos desde un hilo distinto, ambas metodologías deberían solucionar el problema del freezing.

Un ejemplo:
Código
  1. Imports System.Threading.Tasks
  2.  
  3. Task.Factory.StartNew(Sub()
  4.                          Me.zombieGrid.Añadir...)
  5.                      End Sub)

En C#
Código
  1. using System.Threading.Tasks;
  2.  
  3. Task.Factory.StartNew(() => { this.zombieGrid.Añadir...; })

Saludos
« Última modificación: 9 Septiembre 2015, 18:12 pm por Eleкtro » En línea

nevachana

Desconectado Desconectado

Mensajes: 61


Ver Perfil
Re: El form se congela cuando añado un row a mi datagriview.
« Respuesta #4 en: 9 Septiembre 2015, 14:37 pm »

En el título mencionas que se congela (se freezea) pero luego mencionas que se crashea (se finaliza anormálmente el proceso). ¿Puedes aclarar qué es lo que ocurre realmente de esas dos cosas?.

Que se congele el Form sería lo más normal, ya que si tienes el control en el thread de la UI y realizas una operación "intensiva", hasta que no termine lo que hagas en el control no puede seguir de forma regular el flujo de la UI.

Prueba a añadir los elementos de forma asíncrona en el mismo hilo, o añadir los elementos desde un hilo distinto, ambas metodologías deberían solucionar el problema del freezing.

Un ejemplo:
Código
  1. Imports System.Threading.Tasks
  2.  
  3. Task.Factory.StartNew(Sub()
  4.                          Me.zombieGrid.Rows.Add(New String() {name, ip, country, status, os})
  5.                      End Sub)

En C#
Código
  1. using System.Threading.Tasks;
  2.  
  3. Task.Factory.StartNew(() => { this.zombieGrid.Rows.Add(new string[] {name,ip,country,status,os}); })

Saludos
Las dos cosas,si añado varios a la vez se congela un rato,pero si añado muchos( unos 30) crashea.
Gracias por el ejemplo ^^
En línea

kondrag_X1

Desconectado Desconectado

Mensajes: 157


Ver Perfil
Re: El form se congela cuando añado un row a mi datagriview.
« Respuesta #5 en: 9 Septiembre 2015, 16:10 pm »

nevachana cuando se te congela es cuando se llena el datagridview???
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Abrir form(formulario) cuando la Progressbar este al 100%
Programación C/C++
PichusMR 1 3,167 Último mensaje 8 Noviembre 2015, 01:56 am
por ivancea96
Abrir form(formulario) cuando la Progressbar este al 100%
.NET (C#, VB.NET, ASP)
PichusMR 2 4,307 Último mensaje 9 Noviembre 2015, 08:44 am
por Eleкtro
Mi PC se congela cuando quiere « 1 2 »
Hardware
Gonzalez_Vela 12 4,971 Último mensaje 2 Marzo 2017, 05:52 am
por Randomize
Ocultar dirección de url cuando se llene form
Desarrollo Web
SrTrp 3 2,127 Último mensaje 21 Diciembre 2017, 00:21 am
por srWhiteSkull
MI FORMULARIO DE WINDOWS FORM SE CONGELA AYUDA
.NET (C#, VB.NET, ASP)
UnProgramadorMas 1 3,908 Último mensaje 2 Febrero 2023, 21:43 pm
por Locura_23
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines