Поделиться через


SmtpClient.Dispose Метод

Определение

Отправляет сообщение QUIT на SMTP-сервер, правильно завершает TCP-подключение и освобождает все ресурсы, используемые текущим экземпляром класса SmtpClient.

Перегрузки

Dispose()

Отправляет сообщение QUIT на SMTP-сервер, правильно завершает TCP-подключение и освобождает все ресурсы, используемые текущим экземпляром класса SmtpClient.

Dispose(Boolean)

Отправляет сообщение QUIT на SMTP-сервер, правильно завершает TCP-подключение и освобождает все ресурсы, используемые текущим экземпляром класса SmtpClient, и при необходимости освобождает управляемые ресурсы.

Комментарии

Соединение, установленное текущим экземпляром SmtpClient класса с SMTP-сервером, может быть использовано повторно, если приложение хочет отправить несколько сообщений на один SMTP-сервер. Это особенно полезно при использовании проверки подлинности или шифрования подключения к SMTP-серверу. Процесс проверки подлинности и установки сеанса TLS может быть дорогостоящим. Требование повторно установить подключение для каждого сообщения при отправке большого количества сообщений электронной почты на тот же SMTP-сервер может оказать значительное влияние на производительность. Существует ряд больших почтовых приложений, которые отправляют обновления о состоянии электронной почты, рассылки информационных бюллетеней или оповещения по электронной почте. Кроме того, многие клиентские приложения электронной почты поддерживают режим off-line, в котором пользователи могут создавать множество сообщений электронной почты, которые отправляются позже при установке подключения к SMTP-серверу. Как правило, почтовый клиент отправляет все сообщения SMTP на определенный SMTP-сервер (предоставляемый поставщиком услуг Интернета), который затем пересылает это сообщение на другие SMTP-серверы.

Реализация SmtpClient класса пула SMTP-подключений позволяет избежать затрат на повторное подключение для каждого сообщения к одному и тому же серверу. Приложение может повторно использовать один и тот же SmtpClient объект для отправки множества различных сообщений электронной почты на один и тот же SMTP-сервер и на несколько разных SMTP-серверов. В результате невозможно определить, когда приложение будет завершено с помощью SmtpClient объекта , и его необходимо очистить.

Когда сеанс SMTP завершен и клиент хочет завершить подключение, он должен отправить на сервер сообщение QUIT, чтобы указать, что у него больше нет сообщений для отправки. Это позволяет серверу освобождать ресурсы, связанные с подключением, от клиента и обрабатывать сообщения, отправленные клиентом.

Методы Dispose выполняют итерацию по всем установленным подключениям и отправляют сообщение QUIT на каждый SMTP-сервер, а затем корректно завершают TCP-подключение. Эти методы также освобождают неуправляемые ресурсы, используемые , Socket и при необходимости удаляют управляемые ресурсы.

Dispose()

Исходный код:
SmtpClient.cs
Исходный код:
SmtpClient.cs
Исходный код:
SmtpClient.cs

Отправляет сообщение QUIT на SMTP-сервер, правильно завершает TCP-подключение и освобождает все ресурсы, используемые текущим экземпляром класса SmtpClient.

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

Реализации

Комментарии

Соединение, установленное текущим экземпляром SmtpClient класса с SMTP-сервером, может быть использовано повторно, если приложение хочет отправить несколько сообщений на один SMTP-сервер. Это особенно полезно при использовании проверки подлинности или шифрования подключения к SMTP-серверу. Процесс проверки подлинности и установки сеанса TLS может быть дорогостоящим. Требование повторно установить подключение для каждого сообщения при отправке большого количества сообщений электронной почты на тот же SMTP-сервер может оказать значительное влияние на производительность. Существует ряд больших почтовых приложений, которые отправляют обновления о состоянии электронной почты, рассылки информационных бюллетеней или оповещения по электронной почте. Кроме того, многие клиентские приложения электронной почты поддерживают режим off-line, в котором пользователи могут создавать множество сообщений электронной почты, которые отправляются позже при установке подключения к SMTP-серверу. Как правило, почтовый клиент отправляет все сообщения SMTP на определенный SMTP-сервер (предоставляемый поставщиком услуг Интернета), который затем пересылает это сообщение на другие SMTP-серверы.

Реализация SmtpClient класса пула SMTP-подключений позволяет избежать затрат на повторное подключение для каждого сообщения к одному и тому же серверу. Приложение может повторно использовать один и тот же SmtpClient объект для отправки множества различных сообщений электронной почты на один и тот же SMTP-сервер и на несколько разных SMTP-серверов. В результате невозможно определить, когда приложение будет завершено с помощью SmtpClient объекта , и его необходимо очистить.

Когда сеанс SMTP завершен и клиент хочет завершить подключение, он должен отправить на сервер сообщение QUIT, чтобы указать, что у него больше нет сообщений для отправки. Это позволяет серверу освобождать ресурсы, связанные с подключением, от клиента и обрабатывать сообщения, отправленные клиентом.

Dispose Вызов метода для SmtpClient объекта, выполняющего асинхронную SendAsync операцию, отменит операцию отправки, как если бы SendAsyncCancel был вызван метод .

Класс SmtpClient не Finalize имеет метода . Поэтому приложение должно вызывать Dispose для явного освобождения ресурсов.

Метод Dispose выполняет итерацию всех установленных подключений к SMTP-серверу, указанному Host в свойстве , и отправляет сообщение QUIT, за которым следует корректное завершение TCP-подключения. Метод Dispose также освобождает неуправляемые ресурсы, используемые базовым Socket.

Вызовите метод Dispose по окончании использования класса SmtpClient. Метод Dispose оставляет класс SmtpClient в непригодном для использования состоянии. После вызова метода Dispose необходимо освободить все ссылки на объект SmtpClient, чтобы сборщик мусора мог освободить память, занимаемую объектом SmtpClient.

Дополнительные сведения см. в разделах Очистка неуправляемых ресурсов и Реализация метода Dispose.

Примечание

Всегда вызывайте метод Dispose перед освобождением последней ссылки на класс SmtpClient. В противном случае используемые ресурсы не будут освобождены, поэтому сборщик мусора сможет освободить память.

Применяется к

Dispose(Boolean)

Исходный код:
SmtpClient.cs
Исходный код:
SmtpClient.cs
Исходный код:
SmtpClient.cs

Отправляет сообщение QUIT на SMTP-сервер, правильно завершает TCP-подключение и освобождает все ресурсы, используемые текущим экземпляром класса SmtpClient, и при необходимости освобождает управляемые ресурсы.

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)

Параметры

disposing
Boolean

Значение true для освобождения управляемых и неуправляемых ресурсов; значение false для освобождения только неуправляемых ресурсов.

Комментарии

Соединение, установленное текущим экземпляром SmtpClient класса с SMTP-сервером, может быть использовано повторно, если приложение хочет отправить несколько сообщений на один SMTP-сервер. Это особенно полезно при использовании проверки подлинности или шифрования подключения к SMTP-серверу. Процесс проверки подлинности и установки сеанса TLS может быть дорогостоящим. Требование повторно установить подключение для каждого сообщения при отправке большого количества сообщений электронной почты на тот же SMTP-сервер может оказать значительное влияние на производительность. Существует ряд больших почтовых приложений, которые отправляют обновления о состоянии электронной почты, рассылки информационных бюллетеней или оповещения по электронной почте. Кроме того, многие клиентские приложения электронной почты поддерживают режим off-line, в котором пользователи могут создавать множество сообщений электронной почты, которые отправляются позже при установке подключения к SMTP-серверу. Как правило, почтовый клиент отправляет все сообщения SMTP на определенный SMTP-сервер (предоставляемый поставщиком услуг Интернета), который затем пересылает это сообщение на другие SMTP-серверы.

Реализация SmtpClient класса пула SMTP-подключений позволяет избежать затрат на повторное подключение для каждого сообщения к одному и тому же серверу. Приложение может повторно использовать один и тот же SmtpClient объект для отправки множества различных сообщений электронной почты на один и тот же SMTP-сервер и на несколько разных SMTP-серверов. В результате невозможно определить, когда приложение будет завершено с помощью SmtpClient объекта , и его необходимо очистить.

Когда сеанс SMTP завершен и клиент хочет завершить подключение, он должен отправить на сервер сообщение QUIT, чтобы указать, что у него больше нет сообщений для отправки. Это позволяет серверу освобождать ресурсы, связанные с подключением, от клиента и обрабатывать сообщения, отправленные клиентом.

Dispose Вызов метода для SmtpClient объекта, выполняющего асинхронную SendAsync операцию, отменит операцию отправки, как если бы SendAsyncCancel был вызван метод .

Класс SmtpClient не Finalize имеет метода . Поэтому приложение должно вызывать Dispose для явного освобождения ресурсов.

Метод Dispose выполняет итерацию всех установленных подключений к SMTP-серверу, указанному Host в свойстве , и отправляет сообщение QUIT, за которым следует корректное завершение TCP-подключения. Метод Dispose также освобождает неуправляемые ресурсы, используемые , Socket и при необходимости удаляет управляемые ресурсы.

Вызовите метод Dispose по окончании использования класса SmtpClient. Метод Dispose оставляет класс SmtpClient в непригодном для использования состоянии. После вызова метода Dispose необходимо освободить все ссылки на объект SmtpClient, чтобы сборщик мусора мог освободить память, занимаемую объектом SmtpClient.

Дополнительные сведения см. в разделах Очистка неуправляемых ресурсов и Реализация метода Dispose.

Примечание

Всегда вызывайте метод Dispose перед освобождением последней ссылки на класс SmtpClient. В противном случае используемые ресурсы не будут освобождены, поэтому сборщик мусора сможет освободить память.

Применяется к