Non dimenticare di disposare l'oggetto mail visto che implementa IDisposable.

mail.Dispose()

Fabrizio Canevali
102 messaggi dal 08 gennaio 2007
"fabrica" <fabrica> ha scritto nel messaggio news:306118@...
Non dimenticare di disposare l'oggetto mail visto che implementa IDisposable.

mail.Dispose()

Sinceramente nò, non saprei nemmeno come inserirlo, io ho fatto così:
Dim mail As System.Net.Mail.MailMessage

Dim smtpClient As System.Net.Mail.SmtpClient = New
System.Net.Mail.SmtpClient



Quindi creo la mail:

mail = New System.Net.Mail.MailMessage

poi tutto il resto

mail.From =

mail.To.Add(destinatario)

'mail.Bcc.Add("miamail@alice.it")

mail.Subject = "News " & txttitolo.Text & " (" & txtsottotitolo.Text & ")"
mail.Body

Ed infine invio e riparto:



smtpClient.Send(mail)

rs.MoveNext()



Così sembra funzioni, però se sbaglio dimmi pure!



Saluti @ndrea
Ciao,

non sbagli, l'unica cosa che DEVI fare è "disposare" l'oggetto mail quindi:
smtpClient.Send(mail)
mail.Dispose()
rs.MoveNext()

Dai comunque un occhiata qui:http://msdn2.microsoft.com/it-it/library/fs2xkftw(VS.80).aspx

Fabrizio Canevali
102 messaggi dal 08 gennaio 2007
"fabrica" <fabrica> ha scritto nel messaggio news:306140@...
Ciao,

non sbagli, l'unica cosa che DEVI fare è "disposare" l'oggetto mail quindi:
smtpClient.Send(mail)
mail.Dispose()
rs.MoveNext()

Dai comunque un occhiata
qui:http://msdn2.microsoft.com/it-it/library/fs2xkftw(VS.80).aspx


Grazie del consiglio, se ho ben capito l'istruzone che tu citi finalizza il ciclo.

Saluti @ndrea
102 messaggi dal 08 gennaio 2007
"fabrica" <fabrica> ha scritto nel messaggio news:306140@...
Ciao,

non sbagli, l'unica cosa che DEVI fare è "disposare" l'oggetto mail quindi:
smtpClient.Send(mail)
mail.Dispose()
rs.MoveNext()

Dai comunque un occhiata
qui:http://msdn2.microsoft.com/it-it/library/fs2xkftw(VS.80).aspx


Scusa Fabrizio ma mi è venuta una curiosità, tutte le volte che mando una mail da codice devo chiudere con il dispose? Anche nell'invio di una mail singola?
In pratica mi sembra di capire che il dispose chiuda la procedura di invio e quindi da usare sempre dopo l'invio anche se questo no è ciclato giusto? Saluti @ndrea
47 messaggi dal 18 settembre 2006
Contributi
No, Dispose() non chiude nessun ciclo e non chiude nessuna procedura di invio.

Dispose() serve a "forzare" il rilascio al sistema operativo (non è proprio così ma semplifico) delle risorse allocate da un particolare oggetto; in realtà questo rilascio viene interamente gestito dal runtime del framework, in maniera automatica, con un processo chiamato garbage collection.

Quindi sì, se ti ricordi di chiamare Dispose() è utile ma, soprattutto in questo caso, non indispensabile. Se alla tua mail avessi allegato anche un file, ad esempio, chiamando Dispose() ne avresti chiuso l'handle, rilasciandolo al sistema operativo: in questo caso Dispose() sarebbe stato più utile.

HTH

Efran Cobisi
Solution developer, consultant and trainer
MCAD, MCT, MCTS: SQL Server 2005
102 messaggi dal 08 gennaio 2007
"efran.cobisi" <efran.cobisi> ha scritto nel messaggio news:306167@...


Quindi sì, se ti ricordi di chiamare Dispose() è utile ma, soprattutto in questo caso, non indispensabile. Se alla tua mail avessi allegato anche un file, ad esempio, chiamando Dispose() ne avresti chiuso l'handle, rilasciandolo al sistema operativo: in questo caso Dispose() sarebbe stato più utile.


Grazie per la spegazione sei stato gentilissimo!
efran.cobisi ha scritto:
Quindi sì, se ti ricordi di chiamare Dispose() è utile ma, soprattutto in questo caso, non indispensabile.

La chiamata al garbage collection non può essere "forzata" quindi, semplificando, è SEMPRE necessario disposare tutti gli oggetti che implementano l'interfaccia IDisposable proprio per "marcare" gli oggetti che dovranno essere gestiti dal GC.

Fabrizio Canevali

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.