IInputChannel.Receive 方法

定義

如果輸入通道在明確或隱含定義的時間間隔內有收到訊息,則將此訊息傳回。

多載

Receive()

如果有收到訊息,則將該訊息傳回。 如果沒有收到訊息,執行緒就會封鎖一段預設間隔時間。

Receive(TimeSpan)

如果有收到訊息,則將該訊息傳回。 如果沒有收到訊息,執行緒就會封鎖一段指定的間隔時間。

備註

當目前的執行緒可接受進行封鎖直到其接收到要求訊息或者超過由 Receive 指定的時間間隔,請使用同步的 timeout 方法。 當您需要應用程式繼續執行,而不要等候接收到要求時,請使用非同步的 BeginReceive 方法。

不管有沒有明確的逾時,都可以使用同步 Receive 作業。

如果沒有收到訊息,執行緒就會加以封鎖,直到有訊息可使用或超過逾時為止。

Receive()

來源:
IInputChannel.cs
來源:
IInputChannel.cs
來源:
IInputChannel.cs

如果有收到訊息,則將該訊息傳回。 如果沒有收到訊息,執行緒就會封鎖一段預設間隔時間。

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);
}

備註

當目前的執行緒可接受進行封鎖直到其接收到要求訊息或者超過由 Receive 指定的時間間隔,請使用同步的 timeout 方法。 當您希望應用程式繼續執行,而不要等候接收到要求時,請使用非同步的 BeginReceive 方法。

不管有沒有明確的逾時,都可以使用同步 Receive 作業。

如果沒有收到訊息,執行緒就會加以封鎖,直到有訊息可使用或超過逾時為止。

Receive 可以多次呼叫或同時呼叫。 每個已收到的訊息只能完成一次 Receive 呼叫。

適用於

Receive(TimeSpan)

來源:
IInputChannel.cs
來源:
IInputChannel.cs
來源:
IInputChannel.cs

如果有收到訊息,則將該訊息傳回。 如果沒有收到訊息,執行緒就會封鎖一段指定的間隔時間。

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;
}

備註

當目前的執行緒可接受進行封鎖直到其接收到要求訊息或者超過由 Receive 指定的時間間隔,請使用同步的 timeout 方法。 當您希望應用程式繼續執行,而不要等候接收到要求時,請使用非同步的 BeginReceive 方法。

不管有沒有明確的逾時,都可以使用同步 Receive 作業。

如果沒有收到訊息,執行緒就會加以封鎖,直到有訊息可使用或超過逾時為止。

Receive 可以多次呼叫或同時呼叫。 每個已收到的訊息只能完成一次 Receive 呼叫。

適用於