Different RequestTimeouts for different requests

In our program most request are answerend in some seconds, but there are some seldom used that can need a couple of minutes so we had to set RequestTimeout to an high value (3 minutes).
Because the clients sometimes are also used connecting with 3G networks, if the connection goes down the client hangs for a couple of minutes before stopping and signaling the timeout to the user.
Is it possible to use different ReqeustTimeout values on a per-request basis ? So we can use a smaller value for almost all request except the longer ones.
We would like not to rewrite as async the longer ones.

Hello

Please specify which platform (.NET, Delphi or something else) and channel type do you use?

Thanks in advance

Delphi with SuperHTTP Channel

You can change this value before each request so in some cases it can work as you are needed:

procedure TROBaseSuperHTTPChannel.IntDispatch(aRequest,
  aResponse: TStream);
...
  try
    intDispatchHTTPRequest(lRequest, True);
    try
      if lReq.Event.WaitFor(RequestTimeout) <> wrSignaled then
        raise EROSuperHTTPChannelException.Create(err_Timeout);