patron Singleton

19/11/2007 - 22:58 por Edilberto Arteaga Lopez | Informe spam
Hola a todos.
Tengo un formulario MDI del cual llamo a otros formularios desde su menu,
estaba leyendo sobre el patron singleton y su implementaciones, lo agregua a
mis formas y funciona hasta que cierro una forma y trato de volver a
abrirla, me da error y dice que no puedo acceder a un objeto destruido
disposed.

Este codigo tengo en la forma

public partial class frmAgrgarReporte : Form
{
static frmAgrgarReporte instance = null;
static readonly object padlock = new object();

public frmAgrgarReporte()
{
InitializeComponent();
}
public static frmAgrgarReporte Instance
{
get
{
lock (padlock)
{
if (instance == null)
{
instance = new frmAgrgarReporte();
}
else
{
instance.BringToFront();
}
return instance;
}
}
}
}

en la forma MDI este es el Codigo


private void reportes_LinkPressed(object sender,
DevExpress.XtraNavBar.NavBarLinkEventArgs e)
{
frmAgrgarReporte addreportes = frmAgrgarReporte.Instance ;
addreportes.MdiParent = this;
addreportes.Show(); //Cannot access a disposed object. al cerrar
la forma y volver a abriral
}


Saludos
________________________________
Edilberto Arteaga Lopez
El Progreso Yoro, Honduras

Lo que hacemos en la vida, tiene su eco en la eternidad

Preguntas similare

Leer las respuestas

#1 Sashka
19/11/2007 - 23:58 | Informe spam
En el closing
instance = null;

o no cierras sino que lo escondes

this.Hide();

e.Cancel = true;

Sashka

"Edilberto Arteaga Lopez" escribió en el mensaje
news:
Hola a todos.
Tengo un formulario MDI del cual llamo a otros formularios desde su menu,
estaba leyendo sobre el patron singleton y su implementaciones, lo agregua
a mis formas y funciona hasta que cierro una forma y trato de volver a
abrirla, me da error y dice que no puedo acceder a un objeto destruido
disposed.

Este codigo tengo en la forma

public partial class frmAgrgarReporte : Form
{
static frmAgrgarReporte instance = null;
static readonly object padlock = new object();

public frmAgrgarReporte()
{
InitializeComponent();
}
public static frmAgrgarReporte Instance
{
get
{
lock (padlock)
{
if (instance == null)
{
instance = new frmAgrgarReporte();
}
else
{
instance.BringToFront();
}
return instance;
}
}
}
}

en la forma MDI este es el Codigo


private void reportes_LinkPressed(object sender,
DevExpress.XtraNavBar.NavBarLinkEventArgs e)
{
frmAgrgarReporte addreportes = frmAgrgarReporte.Instance ;
addreportes.MdiParent = this;
addreportes.Show(); //Cannot access a disposed object. al
cerrar la forma y volver a abriral
}


Saludos
________________________________
Edilberto Arteaga Lopez
El Progreso Yoro, Honduras

Lo que hacemos en la vida, tiene su eco en la eternidad

Respuesta Responder a este mensaje
#2 Edilberto Arteaga Lopez
22/11/2007 - 20:34 | Informe spam
gracias


"Sashka" wrote in message
news:Op7FH$
En el closing
instance = null;

o no cierras sino que lo escondes

this.Hide();

e.Cancel = true;

Sashka

"Edilberto Arteaga Lopez" escribió en el mensaje
news:
Hola a todos.
Tengo un formulario MDI del cual llamo a otros formularios desde su menu,
estaba leyendo sobre el patron singleton y su implementaciones, lo
agregua a mis formas y funciona hasta que cierro una forma y trato de
volver a abrirla, me da error y dice que no puedo acceder a un objeto
destruido disposed.

Este codigo tengo en la forma

public partial class frmAgrgarReporte : Form
{
static frmAgrgarReporte instance = null;
static readonly object padlock = new object();

public frmAgrgarReporte()
{
InitializeComponent();
}
public static frmAgrgarReporte Instance
{
get
{
lock (padlock)
{
if (instance == null)
{
instance = new frmAgrgarReporte();
}
else
{
instance.BringToFront();
}
return instance;
}
}
}
}

en la forma MDI este es el Codigo


private void reportes_LinkPressed(object sender,
DevExpress.XtraNavBar.NavBarLinkEventArgs e)
{
frmAgrgarReporte addreportes = frmAgrgarReporte.Instance ;
addreportes.MdiParent = this;
addreportes.Show(); //Cannot access a disposed object. al
cerrar la forma y volver a abriral
}


Saludos
________________________________
Edilberto Arteaga Lopez
El Progreso Yoro, Honduras

Lo que hacemos en la vida, tiene su eco en la eternidad






Respuesta Responder a este mensaje
#3 Fernando Gómez
23/11/2007 - 18:15 | Informe spam
On Nov 19, 4:58 pm, "Sashka" wrote:
En el closing
instance = null;

o no cierras sino que lo escondes

this.Hide();

e.Cancel = true;

Sashka

"Edilberto Arteaga Lopez" escribió en el mensajenews:

> Hola a todos.
> Tengo un formulario MDI del cual llamo a otros formularios desde su menu,
> estaba leyendo sobre el patron singleton y su implementaciones, lo agregua
> a mis formas y funciona hasta que cierro una forma y trato de volver a
> abrirla, me da error y dice que no puedo acceder a un objeto destruido
> disposed.

> Este codigo tengo en la forma

> public partial class frmAgrgarReporte : Form
> {
> static frmAgrgarReporte instance = null;
> static readonly object padlock = new object();

> public frmAgrgarReporte()
> {
> InitializeComponent();
> }
> public static frmAgrgarReporte Instance
> {
> get
> {
> lock (padlock)
> {
> if (instance == null)
> {
> instance = new frmAgrgarReporte();
> }
> else
> {
> instance.BringToFront();
> }
> return instance;
> }
> }
> }
> }

> en la forma MDI este es el Codigo

> private void reportes_LinkPressed(object sender,
> DevExpress.XtraNavBar.NavBarLinkEventArgs e)
> {
> frmAgrgarReporte addreportes = frmAgrgarReporte.Instance ;
> addreportes.MdiParent = this;
> addreportes.Show(); //Cannot access a disposed object. al
> cerrar la forma y volver a abriral
> }

> Saludos
> ________________________________
> Edilberto Arteaga Lopez
> El Progreso Yoro, Honduras

> Lo que hacemos en la vida, tiene su eco en la eternidad



Solo que en este caso, ya no tendríamos un patrón Singleton porque
entonces se podrían crear más de una instancia del objeto en
cuestión.

Saludos,
Fernando.
Respuesta Responder a este mensaje
#4 Edilberto Arteaga Lopez
23/11/2007 - 20:56 | Informe spam
siempre esta solo una copia en memoria si lo destrullo y luego lo llamo
utilice el metodo finalice.


"Fernando Gómez" wrote in message
news:
On Nov 19, 4:58 pm, "Sashka" wrote:
En el closing
instance = null;

o no cierras sino que lo escondes

this.Hide();

e.Cancel = true;

Sashka

"Edilberto Arteaga Lopez" escribió en el
mensajenews:

> Hola a todos.
> Tengo un formulario MDI del cual llamo a otros formularios desde su
> menu,
> estaba leyendo sobre el patron singleton y su implementaciones, lo
> agregua
> a mis formas y funciona hasta que cierro una forma y trato de volver a
> abrirla, me da error y dice que no puedo acceder a un objeto destruido
> disposed.

> Este codigo tengo en la forma

> public partial class frmAgrgarReporte : Form
> {
> static frmAgrgarReporte instance = null;
> static readonly object padlock = new object();

> public frmAgrgarReporte()
> {
> InitializeComponent();
> }
> public static frmAgrgarReporte Instance
> {
> get
> {
> lock (padlock)
> {
> if (instance == null)
> {
> instance = new frmAgrgarReporte();
> }
> else
> {
> instance.BringToFront();
> }
> return instance;
> }
> }
> }
> }

> en la forma MDI este es el Codigo

> private void reportes_LinkPressed(object sender,
> DevExpress.XtraNavBar.NavBarLinkEventArgs e)
> {
> frmAgrgarReporte addreportes = frmAgrgarReporte.Instance ;
> addreportes.MdiParent = this;
> addreportes.Show(); //Cannot access a disposed object. al
> cerrar la forma y volver a abriral
> }

> Saludos
> ________________________________
> Edilberto Arteaga Lopez
> El Progreso Yoro, Honduras

> Lo que hacemos en la vida, tiene su eco en la eternidad



Solo que en este caso, ya no tendríamos un patrón Singleton porque
entonces se podrían crear más de una instancia del objeto en
cuestión.

Saludos,
Fernando.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida