This documentation is archived and is not being maintained.

IInputChannel.Receive Method (TimeSpan)

Returns the message received, if one is available. If a message is not available, blocks for a specified interval of time.

Namespace: System.ServiceModel.Channels
Assembly: System.ServiceModel (in system.servicemodel.dll)

Message Receive (
	TimeSpan timeout
Message Receive (
	TimeSpan timeout
function Receive (
	timeout : TimeSpan
) : Message
Not applicable.



The Timespan that specifies how long the receive operation has to complete before timing out and throwing a TimeoutException.

Return Value

The Message received.

Exception typeCondition


The specified timeout is exceeded before the operation is completed.


The timeout specified is less than zero.

Use the synchronous Receive method when it is acceptable for the current thread to be blocked until it receives the request message or exceeds the interval of time specified by timeout. Use the asynchronous BeginReceive method when you want the application processing to continue without waiting for the request to be received.

The synchronous Receive operation is available with or without an explicit timeout.

If a message is not available, it blocks until one is available or until the timeout is exceeded.

Receive can be called multiple times or concurrently. Only one Receive call can complete for each message received.

The following code illustrates how to implement this method:

public Message Receive(TimeSpan timeout)
    Message message;
    while (true)
        message = this.InnerChannel.Receive(timeout);
        if (ProcessReceivedMessage(ref message))

    return message;

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0