IOutputChannel.BeginSend 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
開始傳送訊息的非同步作業。
多載
BeginSend(Message, AsyncCallback, Object) |
開始非同步作業,將訊息傳送到輸出通道的目的端。 |
BeginSend(Message, TimeSpan, AsyncCallback, Object) |
開始非同步作業,於指定的時間間隔內將訊息傳送給輸出通道的目的端。 |
BeginSend(Message, AsyncCallback, Object)
開始非同步作業,將訊息傳送到輸出通道的目的端。
public:
IAsyncResult ^ BeginSend(System::ServiceModel::Channels::Message ^ message, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSend (System.ServiceModel.Channels.Message message, AsyncCallback callback, object state);
abstract member BeginSend : System.ServiceModel.Channels.Message * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (message As Message, callback As AsyncCallback, state As Object) As IAsyncResult
參數
- callback
- AsyncCallback
AsyncCallback 委派。
- state
- Object
應用程式指定的物件,其中包含與非同步傳送作業有關的狀態資訊。
傳回
參考非同步訊息傳輸的 IAsyncResult。
範例
下列程式碼說明如何實作這個方法:
public IAsyncResult BeginReceiveRequest(TimeSpan timeout, AsyncCallback callback, object state)
{
ReceiveRequestAsyncResult result = new ReceiveRequestAsyncResult(this, timeout, callback, state);
result.Begin();
return result;
}
備註
在輸出通道上送出之訊息的目的端會在通道建立時指定。
BeginSend 方法不保證會將訊息傳送到遠端端點。 如果需要傳遞保證,請使用 IOutputSessionChannel。
如果傳送的訊息大於所使用之繫結允許的訊息大小上限,則會擲回 QuotaExceededException。 訊息大小上限是由 MaxReceivedMessageSize 屬性所設定。 預設值為 65536 個位元組。
適用於
BeginSend(Message, TimeSpan, AsyncCallback, Object)
開始非同步作業,於指定的時間間隔內將訊息傳送給輸出通道的目的端。
public:
IAsyncResult ^ BeginSend(System::ServiceModel::Channels::Message ^ message, TimeSpan timeout, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSend (System.ServiceModel.Channels.Message message, TimeSpan timeout, AsyncCallback callback, object state);
abstract member BeginSend : System.ServiceModel.Channels.Message * TimeSpan * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (message As Message, timeout As TimeSpan, callback As AsyncCallback, state As Object) As IAsyncResult
參數
- callback
- AsyncCallback
AsyncCallback 委派,可接收非同步作業傳送完成的通知。
- state
- Object
應用程式指定的物件,其中包含與非同步傳送作業有關的狀態資訊。
傳回
參考非同步傳送作業的 IAsyncResult。
範例
下列程式碼說明如何實作這個方法:
public RequestContext EndReceiveRequest(IAsyncResult result)
{
return ReceiveRequestAsyncResult.End(result);
}
備註
在輸出通道上送出之訊息的目的端會在通道建立時指定。
BeginSend 方法不保證會將訊息傳送到遠端端點。 如果需要傳遞保證,請使用 IOutputSessionChannel。
如果傳送的訊息大於所使用之繫結允許的訊息大小上限,則會擲回 QuotaExceededException。 訊息大小上限是由 MaxReceivedMessageSize 屬性所設定。 預設值為 65536 個位元組。
給實施者的注意事項
如果超出了指定的 TimeoutException,則此作業應該擲回 timeout
。