CommunicationObject.Close 方法

定義

導致通訊物件從目前的狀態轉換為已關閉狀態。

多載

Close()

導致通訊物件從目前的狀態轉換為已關閉狀態。

Close(TimeSpan)

在指定時間間隔內,讓通訊物件從目前的狀態轉換為已關閉狀態。

Close()

導致通訊物件從目前的狀態轉換為已關閉狀態。

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

實作

例外狀況

通訊物件並非處於 OpenedOpening 狀態,無法修改。

通訊物件處於 ClosingClosed 狀態,無法修改。

通訊物件處於 Faulted 狀態,無法修改。

已超過為作業分配的預設時間間隔,該作業未完成。

備註

這個方法會讓 CommunicationObjectClosed 狀態以外的任何狀態順利轉換至 Closed 狀態。 Close 方法可讓任何未完成的工作在傳回前完成 (例如,完成傳送任何經過緩衝處理的訊息)。

在呼叫 CommunicationObject 方法後,Closing 會進入並維持 Close 狀態,直到轉換至 Closed 狀態完成為止。 轉換包含對於 OnClosingOnClose(TimeSpan)OnClosed 進行後續呼叫。

也有非同步的方式可用於關閉方法,亦即藉由呼叫 BeginClose 啟始。

適用於

Close(TimeSpan)

在指定時間間隔內,讓通訊物件從目前的狀態轉換為已關閉狀態。

public:
 virtual void Close(TimeSpan timeout);
public void Close (TimeSpan timeout);
abstract member Close : TimeSpan -> unit
override this.Close : TimeSpan -> unit
Public Sub Close (timeout As TimeSpan)

參數

timeout
TimeSpan

TimeSpan,指定必須在逾時前多久完成關閉作業。

實作

例外狀況

通訊物件並非處於 OpenedOpening 狀態,無法修改。

通訊物件處於 ClosingClosed 狀態,無法修改。

通訊物件處於 Faulted 狀態,無法修改。

已超過為作業分配的預設時間間隔,該作業未完成。

備註

這個方法可在指定時間間隔內,將 CommunicationObjectClosed 狀態以外的任何狀態順利轉換至 Closed 狀態。 Close 方法可讓任何未完成的工作在傳回前完成 (例如,完成傳送任何經過緩衝處理的訊息)。

在呼叫 CommunicationObject 方法後,Closing 會進入並維持 Close 狀態,直到轉換至 Closed 狀態完成為止。 轉換包含對於 OnClosingOnClose(TimeSpan)OnClosed 進行後續呼叫。

也有非同步的方式可用於關閉方法,亦即藉由呼叫 BeginClose 啟始。

適用於