IInputChannel.Receive 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
若輸入通道有明確或隱含的時間區間可用,則回傳訊息。
多載
| 名稱 | Description |
|---|---|
| Receive() |
如果有訊息可用,會回傳收到的訊息。 若訊息無法取得,則會封鎖預設的時間間隔。 |
| Receive(TimeSpan) |
如果有訊息可用,會回傳收到的訊息。 若訊息無法取得,則封鎖指定時間間隔。 |
備註
當目前執行緒可以被阻塞直到收到請求訊息或超過由 ReceiveS 指定的時間間隔時,使用同步timeout方法。 當你需要應用程式處理繼續且不等待請求收到時,請使用非同步 BeginReceive 方法。
Receive同步操作可有或不需明確逾時。
若訊息無法使用,則會封鎖訊息直到有訊息可用或逾時為止。
Receive()
如果有訊息可用,會回傳收到的訊息。 若訊息無法取得,則會封鎖預設的時間間隔。
public:
System::ServiceModel::Channels::Message ^ Receive();
public System.ServiceModel.Channels.Message Receive();
abstract member Receive : unit -> System.ServiceModel.Channels.Message
Public Function Receive () As Message
傳回
Message他們已經接受了。
範例
以下程式碼說明如何實作此方法:
public Message Receive()
{
return Receive(DefaultReceiveTimeout);
}
備註
當目前執行緒可以被阻塞直到收到請求訊息或超過由 ReceiveS 指定的時間間隔時,使用同步timeout方法。 當你希望應用程式處理能繼續且不等待請求被接收時,請使用非同步 BeginReceive 方法。
Receive同步操作可有或不需明確逾時。
若訊息無法使用,則會封鎖訊息直到有訊息可用或逾時為止。
Receive 可以多次呼叫或同時呼叫。 每收到一則訊息,只能完成一 Receive 通通話。
適用於
Receive(TimeSpan)
如果有訊息可用,會回傳收到的訊息。 若訊息無法取得,則封鎖指定時間間隔。
public:
System::ServiceModel::Channels::Message ^ Receive(TimeSpan timeout);
public System.ServiceModel.Channels.Message Receive(TimeSpan timeout);
abstract member Receive : TimeSpan -> System.ServiceModel.Channels.Message
Public Function Receive (timeout As TimeSpan) As Message
參數
- timeout
- TimeSpan
該 TimeSpan 表示接收操作完成的時間,直到逾時並拋 TimeoutException出 。
傳回
Message他們已經接受了。
例外狀況
timeout在操作完成前,規定值已超過。
指定的逾時時間小於零。
範例
以下程式碼說明如何實作此方法:
public Message Receive(TimeSpan timeout)
{
Message message;
while (true)
{
message = this.InnerChannel.Receive(timeout);
if (ProcessReceivedMessage(ref message))
{
break;
}
}
return message;
}
備註
當目前執行緒可以被阻塞直到收到請求訊息或超過由 ReceiveS 指定的時間間隔時,使用同步timeout方法。 當你希望應用程式處理能繼續且不等待請求被接收時,請使用非同步 BeginReceive 方法。
Receive同步操作可有或不需明確逾時。
若訊息無法使用,則會封鎖訊息直到有訊息可用或逾時為止。
Receive 可以多次呼叫或同時呼叫。 每收到一則訊息,只能完成一 Receive 通通話。