SmtpClient.Dispose 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將 QUIT 訊息傳送至 SMTP 伺服器、正常結束 TCP 連接,並且釋放 SmtpClient 類別之目前執行個體所使用的所有資源。
多載
Dispose() |
將 QUIT 訊息傳送至 SMTP 伺服器、正常結束 TCP 連接,並且釋放 SmtpClient 類別之目前執行個體所使用的所有資源。 |
Dispose(Boolean) |
將 QUIT 訊息傳送至 SMTP 伺服器、正常結束 TCP 連接、釋放 SmtpClient 類別之目前執行個體所使用的所有資源,並選擇性處置 Managed 資源。 |
備註
如果應用程式想要將多個訊息傳送至相同的 SMTP 伺服器,則可能會重新使用 類別的 SmtpClient 目前實例所建立的連接。 當使用驗證或加密來建立 SMTP 伺服器的連線時,這特別有用。 驗證和建立 TLS 會話的程式可能是昂貴的作業。 將大量電子郵件傳送至相同的 SMTP 伺服器時,重新建立每個郵件的連線需求可能會對效能造成重大影響。 有許多大量電子郵件應用程式會傳送電子郵件狀態更新、電子報發佈或電子郵件警示。 此外,許多電子郵件用戶端應用程式都支援離線模式,用戶可以撰寫許多在建立SMTP伺服器連線時傳送的電子郵件訊息。 電子郵件用戶端通常會將所有 SMTP 訊息傳送至因特網服務提供者所提供的特定 SMTP 伺服器 (,) 然後將此電子郵件轉寄給其他 SMTP 伺服器。
類別實作會 SmtpClient 集區 SMTP 連線,以避免對相同伺服器的每個訊息重新建立連線的額外負荷。 應用程式可能會重複使用相同的 SmtpClient 物件,將許多不同的電子郵件傳送至相同的 SMTP 伺服器和許多不同的 SMTP 伺服器。 因此,無法判斷應用程式何時使用 物件完成, SmtpClient 而且應該加以清除。
當 SMTP 工作階段完成且用戶端想要終止連線時,它必須將 QUIT 訊息傳送至伺服器,以指出它沒有要傳送的訊息。 這可讓伺服器從客戶端釋放與連線相關聯的資源,並處理用戶端所傳送的訊息。
方法 Dispose 會逐一查看所有已建立的連線,並將 QUIT 訊息傳送至每個 SMTP 伺服器,然後依正常方式結束 TCP 連線。 這些方法也會釋放 所使用的 Socket Unmanaged 資源,並選擇性地處置 Managed 資源。
Dispose()
將 QUIT 訊息傳送至 SMTP 伺服器、正常結束 TCP 連接,並且釋放 SmtpClient 類別之目前執行個體所使用的所有資源。
public:
virtual void Dispose();
public void Dispose ();
abstract member Dispose : unit -> unit
override this.Dispose : unit -> unit
Public Sub Dispose ()
實作
備註
如果應用程式想要將多個訊息傳送至相同的 SMTP 伺服器,則可能會重新使用 類別的 SmtpClient 目前實例所建立的連接。 當使用驗證或加密來建立 SMTP 伺服器的連線時,這特別有用。 驗證和建立 TLS 會話的程式可能是昂貴的作業。 將大量電子郵件傳送至相同的 SMTP 伺服器時,重新建立每個郵件的連線需求可能會對效能造成重大影響。 有許多大量電子郵件應用程式會傳送電子郵件狀態更新、電子報發佈或電子郵件警示。 此外,許多電子郵件用戶端應用程式都支援離線模式,用戶可以撰寫許多在建立SMTP伺服器連線時傳送的電子郵件訊息。 電子郵件用戶端通常會將所有 SMTP 訊息傳送至因特網服務提供者所提供的特定 SMTP 伺服器 (,) 然後將此電子郵件轉寄給其他 SMTP 伺服器。
類別實作會 SmtpClient 集區 SMTP 連線,以避免對相同伺服器的每個訊息重新建立連線的額外負荷。 應用程式可能會重複使用相同的 SmtpClient 物件,將許多不同的電子郵件傳送至相同的 SMTP 伺服器和許多不同的 SMTP 伺服器。 因此,無法判斷應用程式何時使用 物件完成, SmtpClient 而且應該加以清除。
當 SMTP 工作階段完成且用戶端想要終止連線時,它必須將 QUIT 訊息傳送至伺服器,以指出它沒有要傳送的訊息。 這可讓伺服器從客戶端釋放與連線相關聯的資源,並處理用戶端所傳送的訊息。
Dispose在執行異步SendAsync操作的物件上SmtpClient呼叫 方法,將會取消傳送作業,就像SendAsyncCancel呼叫 方法一樣。
類別 SmtpClient 沒有 Finalize
方法。 因此,應用程式必須呼叫 Dispose 以明確釋放資源。
Dispose方法會逐一查看 屬性中所Host指定 SMTP 伺服器的所有已建立連線,並傳送 QUIT 訊息,然後依正常方式結束 TCP 連線。 方法 Dispose 也會釋放基礎 Socket所使用的 Unmanaged 資源。
Dispose 使用完畢時,請呼叫 SmtpClient。 Dispose 方法會將 SmtpClient 保留在無法使用的狀態。 呼叫 Dispose之後,您必須釋放 的所有參考, SmtpClient 讓垃圾收集行程可以回收佔用的 SmtpClient 記憶體。
如需詳細資訊,請參閱 清除 Unmanaged 資源 及 實作 Dispose 方法。
注意
在您釋放最後一個 Dispose 參考之前,請務必呼叫 SmtpClient。 否則,將不會釋放它所使用的資源,因此垃圾收集行程可以回收記憶體。
適用於
Dispose(Boolean)
將 QUIT 訊息傳送至 SMTP 伺服器、正常結束 TCP 連接、釋放 SmtpClient 類別之目前執行個體所使用的所有資源,並選擇性處置 Managed 資源。
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
表示會同時釋放 Managed 和 Unmanaged 資源;false
則表示只釋放 Unmanaged 資源。
備註
如果應用程式想要將多個訊息傳送至相同的 SMTP 伺服器,則可能會重新使用 類別的 SmtpClient 目前實例所建立的連接。 當使用驗證或加密來建立 SMTP 伺服器的連線時,這特別有用。 驗證和建立 TLS 會話的程式可能是昂貴的作業。 將大量電子郵件傳送至相同的 SMTP 伺服器時,重新建立每個郵件的連線需求可能會對效能造成重大影響。 有許多大量電子郵件應用程式會傳送電子郵件狀態更新、電子報發佈或電子郵件警示。 此外,許多電子郵件用戶端應用程式都支援離線模式,用戶可以撰寫許多在建立SMTP伺服器連線時傳送的電子郵件訊息。 電子郵件用戶端通常會將所有 SMTP 訊息傳送至因特網服務提供者所提供的特定 SMTP 伺服器 (,) 然後將此電子郵件轉寄給其他 SMTP 伺服器。
類別實作會 SmtpClient 集區 SMTP 連線,以避免對相同伺服器的每個訊息重新建立連線的額外負荷。 應用程式可能會重複使用相同的 SmtpClient 物件,將許多不同的電子郵件傳送至相同的 SMTP 伺服器和許多不同的 SMTP 伺服器。 因此,無法判斷應用程式何時使用 物件完成, SmtpClient 而且應該加以清除。
當 SMTP 工作階段完成且用戶端想要終止連線時,它必須將 QUIT 訊息傳送至伺服器,以指出它沒有要傳送的訊息。 這可讓伺服器從客戶端釋放與連線相關聯的資源,並處理用戶端所傳送的訊息。
Dispose在執行異步SendAsync操作的物件上SmtpClient呼叫 方法,將會取消傳送作業,就像SendAsyncCancel呼叫 方法一樣。
類別 SmtpClient 沒有 Finalize
方法。 因此,應用程式必須呼叫 Dispose 以明確釋放資源。
Dispose方法會逐一查看 屬性中所Host指定 SMTP 伺服器的所有已建立連線,並傳送 QUIT 訊息,然後依正常方式結束 TCP 連線。 方法 Dispose 也會釋放 所使用的 Socket Unmanaged 資源,並選擇性地處置 Managed 資源。
Dispose 使用完畢時,請呼叫 SmtpClient。 Dispose 方法會將 SmtpClient 保留在無法使用的狀態。 呼叫 Dispose之後,您必須釋放 的所有參考, SmtpClient 讓垃圾收集行程可以回收佔用的 SmtpClient 記憶體。
如需詳細資訊,請參閱 清除 Unmanaged 資源 及 實作 Dispose 方法。
注意
在您釋放最後一個 Dispose 參考之前,請務必呼叫 SmtpClient。 否則,將不會釋放它所使用的資源,因此垃圾收集行程可以回收記憶體。