IReplyChannel.TryReceiveRequest(TimeSpan, RequestContext) 方法

定義

傳回值,這個值會表示要求是否是在超過已指定時間間隔之前所接收。

public:
 bool TryReceiveRequest(TimeSpan timeout, [Runtime::InteropServices::Out] System::ServiceModel::Channels::RequestContext ^ % context);
public bool TryReceiveRequest (TimeSpan timeout, out System.ServiceModel.Channels.RequestContext context);
abstract member TryReceiveRequest : TimeSpan * RequestContext -> bool
Public Function TryReceiveRequest (timeout As TimeSpan, ByRef context As RequestContext) As Boolean

參數

timeout
TimeSpan

TimeSpan,指定必須在逾時和傳回 false 多久之前完成接收要求作業。

context
RequestContext

所接收的 RequestContext

傳回

如果在超過指定時間間隔之前接收到要求訊息,則為 true,否則為 false

範例

下列程式碼說明如何實作這個方法:

public bool TryReceiveRequest(TimeSpan timeout, out RequestContext requestContext)
{
    bool result;

    while (true)
    {
        result = this.InnerChannel.TryReceiveRequest(timeout, out requestContext);
        if (!result || ProcessRequestContext(ref requestContext))
        {
            break;
        }
    }

    return result;
}

備註

當目前的執行緒可接受進行封鎖並同時等候要求訊息到達佇列時,請使用 TryReceiveRequest(TimeSpan, RequestContext)。 執行緒會持續封鎖,直到指定的 timeout 為止。 當您需要應用程式繼續執行而不要等候,請使用非同步的 BeginTryReceiveRequest(TimeSpan, AsyncCallback, Object) 方法。

給實施者的注意事項

如果超出了指定的 false,作業會傳回 timeout

適用於