Udostępnij za pośrednictwem


SmtpClient.Dispose Metoda

Definicja

Wysyła komunikat QUIT do serwera SMTP, bezpiecznie kończy połączenie TCP i zwalnia wszystkie zasoby używane przez bieżące wystąpienie SmtpClient klasy.

Przeciążenia

Dispose()

Wysyła komunikat QUIT do serwera SMTP, bezpiecznie kończy połączenie TCP i zwalnia wszystkie zasoby używane przez bieżące wystąpienie SmtpClient klasy.

Dispose(Boolean)

Wysyła komunikat QUIT do serwera SMTP, bezpiecznie kończy połączenie TCP, zwalnia wszystkie zasoby używane przez bieżące wystąpienie SmtpClient klasy i opcjonalnie usuwa zasoby zarządzane.

Uwagi

Połączenie ustanowione przez bieżące wystąpienie SmtpClient klasy do serwera SMTP może być ponownie używane, jeśli aplikacja chce wysłać wiele komunikatów do tego samego serwera SMTP. Jest to szczególnie przydatne w przypadku użycia uwierzytelniania lub szyfrowania nawiązywania połączenia z serwerem SMTP. Proces uwierzytelniania i ustanawiania sesji protokołu TLS może być kosztowny. Wymóg ponownego ustanowienia połączenia dla każdej wiadomości podczas wysyłania dużej ilości wiadomości e-mail do tego samego serwera SMTP może mieć znaczący wpływ na wydajność. Istnieje wiele aplikacji poczty e-mail o dużej ilości, które wysyłają aktualizacje stanu wiadomości e-mail, dystrybucje biuletynów lub alerty e-mail. Wiele aplikacji klienckich poczty e-mail obsługuje tryb pozawierszowy, w którym użytkownicy mogą tworzyć wiele wiadomości e-mail wysyłanych później po nawiązaniu połączenia z serwerem SMTP. Zazwyczaj klient poczty e-mail wysyła wszystkie wiadomości SMTP do określonego serwera SMTP (dostarczonego przez dostawcę usług internetowych), który następnie przekazuje tę wiadomość e-mail do innych serwerów SMTP.

Implementacja SmtpClient klasy tworzy pule połączeń SMTP, aby uniknąć narzutów związanych z ponownym ustanawianiem połączenia dla każdego komunikatu na tym samym serwerze. Aplikacja może ponownie używać tego samego SmtpClient obiektu do wysyłania wielu różnych wiadomości e-mail na ten sam serwer SMTP i do wielu różnych serwerów SMTP. W związku z tym nie ma możliwości określenia, kiedy aplikacja została zakończona przy użyciu SmtpClient obiektu i powinna zostać wyczyszczona.

Po zakończeniu sesji SMTP i zakończeniu połączenia klient musi wysłać komunikat QUIT do serwera, aby wskazać, że nie ma więcej komunikatów do wysłania. Dzięki temu serwer może zwolnić zasoby skojarzone z połączeniem z klientem i przetworzyć komunikaty, które zostały wysłane przez klienta.

Metody Dispose iterują przez wszystkie nawiązane połączenia i wysyłają komunikat QUIT do każdego serwera SMTP, a następnie bezpiecznie kończąc połączenie TCP. Te metody udostępniają również niezarządzane zasoby używane przez Socket program i opcjonalnie usuwają zarządzane zasoby.

Dispose()

Źródło:
SmtpClient.cs
Źródło:
SmtpClient.cs
Źródło:
SmtpClient.cs

Wysyła komunikat QUIT do serwera SMTP, bezpiecznie kończy połączenie TCP i zwalnia wszystkie zasoby używane przez bieżące wystąpienie SmtpClient klasy.

public:
 virtual void Dispose();
public void Dispose ();
abstract member Dispose : unit -> unit
override this.Dispose : unit -> unit
Public Sub Dispose ()

Implementuje

Uwagi

Połączenie ustanowione przez bieżące wystąpienie SmtpClient klasy do serwera SMTP może być ponownie używane, jeśli aplikacja chce wysłać wiele komunikatów do tego samego serwera SMTP. Jest to szczególnie przydatne w przypadku użycia uwierzytelniania lub szyfrowania nawiązywania połączenia z serwerem SMTP. Proces uwierzytelniania i ustanawiania sesji protokołu TLS może być kosztowny. Wymóg ponownego ustanowienia połączenia dla każdej wiadomości podczas wysyłania dużej ilości wiadomości e-mail do tego samego serwera SMTP może mieć znaczący wpływ na wydajność. Istnieje wiele aplikacji poczty e-mail o dużej ilości, które wysyłają aktualizacje stanu wiadomości e-mail, dystrybucje biuletynów lub alerty e-mail. Wiele aplikacji klienckich poczty e-mail obsługuje tryb pozawierszowy, w którym użytkownicy mogą tworzyć wiele wiadomości e-mail wysyłanych później po nawiązaniu połączenia z serwerem SMTP. Zazwyczaj klient poczty e-mail wysyła wszystkie wiadomości SMTP do określonego serwera SMTP (dostarczonego przez dostawcę usług internetowych), który następnie przekazuje tę wiadomość e-mail do innych serwerów SMTP.

Implementacja SmtpClient klasy tworzy pule połączeń SMTP, aby uniknąć narzutów związanych z ponownym ustanawianiem połączenia dla każdego komunikatu na tym samym serwerze. Aplikacja może ponownie używać tego samego SmtpClient obiektu do wysyłania wielu różnych wiadomości e-mail na ten sam serwer SMTP i do wielu różnych serwerów SMTP. W związku z tym nie ma możliwości określenia, kiedy aplikacja została zakończona przy użyciu SmtpClient obiektu i powinna zostać wyczyszczona.

Po zakończeniu sesji SMTP i zakończeniu połączenia klient musi wysłać komunikat QUIT do serwera, aby wskazać, że nie ma więcej komunikatów do wysłania. Dzięki temu serwer może zwolnić zasoby skojarzone z połączeniem z klientem i przetworzyć komunikaty, które zostały wysłane przez klienta.

Dispose Wywołanie metody na SmtpClient obiekcie wykonującym operację asynchroniczną SendAsync spowoduje anulowanie operacji wysyłania tak, jakby SendAsyncCancel metoda została wywołana.

Klasa SmtpClient nie Finalize ma metody. Dlatego aplikacja musi wywołać metodę Dispose , aby jawnie zwolnić zasoby.

Metoda Dispose wykonuje iterację po wszystkich ustanowionych połączeniach z serwerem SMTP określonym we Host właściwości i wysyła komunikat QUIT, a następnie bezpiecznie kończąc połączenie TCP. Metoda Dispose zwalnia również niezarządzane zasoby używane przez bazowy Socketelement .

Po Dispose zakończeniu połączenia użyj polecenia SmtpClient. Metoda Dispose pozostawia SmtpClient obiekt w stanie bezużytecznym. Po wywołaniu Disposemetody należy zwolnić wszystkie odwołania do SmtpClient modułu , aby moduł odśmiecania pamięci mógł odzyskać pamięć zajmowaną przez SmtpClient moduł.

Aby uzyskać więcej informacji, zobacz Oczyszczanie niezarządzanych zasobów i Implementowanie metody Dispose.

Uwaga

Przed wydaniem ostatniego odwołania do elementu należy zawsze wywołać metodę DisposeSmtpClient. W przeciwnym razie zasoby, których używasz, nie zostaną zwolnione, aby moduł odśmiecniający pamięci mógł odzyskać pamięć.

Dotyczy

Dispose(Boolean)

Źródło:
SmtpClient.cs
Źródło:
SmtpClient.cs
Źródło:
SmtpClient.cs

Wysyła komunikat QUIT do serwera SMTP, bezpiecznie kończy połączenie TCP, zwalnia wszystkie zasoby używane przez bieżące wystąpienie SmtpClient klasy i opcjonalnie usuwa zasoby zarządzane.

protected:
 virtual void Dispose(bool disposing);
protected virtual void Dispose (bool disposing);
abstract member Dispose : bool -> unit
override this.Dispose : bool -> unit
Protected Overridable Sub Dispose (disposing As Boolean)

Parametry

disposing
Boolean

true zwalnianie zasobów zarządzanych i niezarządzanych; false w celu wydania tylko niezarządzanych zasobów.

Uwagi

Połączenie ustanowione przez bieżące wystąpienie SmtpClient klasy do serwera SMTP może być ponownie używane, jeśli aplikacja chce wysłać wiele komunikatów do tego samego serwera SMTP. Jest to szczególnie przydatne w przypadku użycia uwierzytelniania lub szyfrowania nawiązywania połączenia z serwerem SMTP. Proces uwierzytelniania i ustanawiania sesji protokołu TLS może być kosztowny. Wymóg ponownego ustanowienia połączenia dla każdej wiadomości podczas wysyłania dużej ilości wiadomości e-mail do tego samego serwera SMTP może mieć znaczący wpływ na wydajność. Istnieje wiele aplikacji poczty e-mail o dużej ilości, które wysyłają aktualizacje stanu wiadomości e-mail, dystrybucje biuletynów lub alerty e-mail. Wiele aplikacji klienckich poczty e-mail obsługuje tryb pozawierszowy, w którym użytkownicy mogą tworzyć wiele wiadomości e-mail wysyłanych później po nawiązaniu połączenia z serwerem SMTP. Zazwyczaj klient poczty e-mail wysyła wszystkie wiadomości SMTP do określonego serwera SMTP (dostarczonego przez dostawcę usług internetowych), który następnie przekazuje tę wiadomość e-mail do innych serwerów SMTP.

Implementacja SmtpClient klasy tworzy pule połączeń SMTP, aby uniknąć narzutów związanych z ponownym ustanawianiem połączenia dla każdego komunikatu na tym samym serwerze. Aplikacja może ponownie używać tego samego SmtpClient obiektu do wysyłania wielu różnych wiadomości e-mail na ten sam serwer SMTP i do wielu różnych serwerów SMTP. W związku z tym nie ma możliwości określenia, kiedy aplikacja została zakończona przy użyciu SmtpClient obiektu i powinna zostać wyczyszczona.

Po zakończeniu sesji SMTP i zakończeniu połączenia klient musi wysłać komunikat QUIT do serwera, aby wskazać, że nie ma więcej komunikatów do wysłania. Dzięki temu serwer może zwolnić zasoby skojarzone z połączeniem z klientem i przetworzyć komunikaty, które zostały wysłane przez klienta.

Dispose Wywołanie metody na SmtpClient obiekcie wykonującym operację asynchroniczną SendAsync spowoduje anulowanie operacji wysyłania tak, jakby SendAsyncCancel metoda została wywołana.

Klasa SmtpClient nie Finalize ma metody. Dlatego aplikacja musi wywołać metodę Dispose , aby jawnie zwolnić zasoby.

Metoda Dispose wykonuje iterację po wszystkich ustanowionych połączeniach z serwerem SMTP określonym we Host właściwości i wysyła komunikat QUIT, a następnie bezpiecznie kończąc połączenie TCP. Metoda Dispose zwalnia również niezarządzane zasoby używane przez Socket program i opcjonalnie usuwa zasoby zarządzane.

Po Dispose zakończeniu połączenia użyj polecenia SmtpClient. Metoda Dispose pozostawia SmtpClient obiekt w stanie bezużytecznym. Po wywołaniu Disposemetody należy zwolnić wszystkie odwołania do SmtpClient modułu , aby moduł odśmiecania pamięci mógł odzyskać pamięć zajmowaną przez SmtpClient moduł.

Aby uzyskać więcej informacji, zobacz Oczyszczanie niezarządzanych zasobów i Implementowanie metody Dispose.

Uwaga

Przed wydaniem ostatniego odwołania do elementu należy zawsze wywołać metodę DisposeSmtpClient. W przeciwnym razie zasoby, których używasz, nie zostaną zwolnione, aby moduł odśmiecniający pamięci mógł odzyskać pamięć.

Dotyczy