IRequestChannel.BeginRequest 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
開始非同步作業,以便將要求訊息傳輸至要求-回覆訊息交換的回覆端。
多載
BeginRequest(Message, AsyncCallback, Object) |
開始非同步作業,以便將要求訊息傳輸至要求-回覆訊息交換的回覆端。 |
BeginRequest(Message, TimeSpan, AsyncCallback, Object) |
開始非同步作業,以便在指定的時間間隔內,將要求訊息傳輸至要求-回覆訊息交換的回覆端。 |
BeginRequest(Message, AsyncCallback, Object)
開始非同步作業,以便將要求訊息傳輸至要求-回覆訊息交換的回覆端。
public:
IAsyncResult ^ BeginRequest(System::ServiceModel::Channels::Message ^ message, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginRequest (System.ServiceModel.Channels.Message message, AsyncCallback callback, object state);
abstract member BeginRequest : System.ServiceModel.Channels.Message * AsyncCallback * obj -> IAsyncResult
Public Function BeginRequest (message As Message, callback As AsyncCallback, state As Object) As IAsyncResult
參數
- callback
- AsyncCallback
AsyncCallback 委派 (Delegate),這個委派會在非同步傳輸要求訊息作業完成時,收到通知。
- state
- Object
應用程式所指定的物件,其中包含與非同步傳輸要求訊息作業相關聯的狀態資訊。
傳回
參考非同步訊息傳輸的 IAsyncResult。
範例
下列程式碼會示範如何實作這個方法。
public IAsyncResult BeginRequest(Message message,
AsyncCallback callback, object state)
{
return this.InnerChannel.BeginRequest(message,
callback, state);
}
備註
如果要求訊息大於要使用之繫結所允許的訊息大小上限,則會擲回 QuotaExceededException。 訊息大小上限是由 MaxReceivedMessageSize 屬性所設定。 預設值為 65536 個位元組。
適用於
BeginRequest(Message, TimeSpan, AsyncCallback, Object)
開始非同步作業,以便在指定的時間間隔內,將要求訊息傳輸至要求-回覆訊息交換的回覆端。
public:
IAsyncResult ^ BeginRequest(System::ServiceModel::Channels::Message ^ message, TimeSpan timeout, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginRequest (System.ServiceModel.Channels.Message message, TimeSpan timeout, AsyncCallback callback, object state);
abstract member BeginRequest : System.ServiceModel.Channels.Message * TimeSpan * AsyncCallback * obj -> IAsyncResult
Public Function BeginRequest (message As Message, timeout As TimeSpan, callback As AsyncCallback, state As Object) As IAsyncResult
參數
- callback
- AsyncCallback
AsyncCallback 委派 (Delegate),這個委派會在非同步傳輸要求訊息作業完成時,收到通知。
- state
- Object
應用程式所指定的物件,其中包含與非同步傳輸要求訊息作業相關聯的狀態資訊。
傳回
參考非同步訊息傳輸的 IAsyncResult。
範例
下列程式碼會示範如何實作這個方法:
public IAsyncResult BeginRequest(Message message,
TimeSpan timeout, AsyncCallback callback,
object state)
{
return this.InnerChannel.BeginRequest(message,
timeout, callback, state);
}
備註
如果要求訊息大於要使用之繫結所允許的訊息大小上限,則應該擲回 QuotaExceededException。 訊息大小上限是由 MaxReceivedMessageSize 屬性所設定。 預設值為 65536 個位元組。
如果在呼叫此函式時傳遞 timeout
,則會使用該值。 如果在繫結上設定 SendTimeout,則如果在呼叫此函式時未指定任何 timeout
,便會使用繫結上的值。
如果在繫結上或是呼叫此函式時,未指定任何逾時值,則會使用 DefaultSendTimeout。 這個預設值為 1 分鐘。
給實施者的注意事項
如果在作業完成之前超出了指定的 TimeoutException,此作業應該擲回 timeout
。