228. Assembling StructuredTaskScope
In the previous problem (Problem 227), we developed an application containing a ridesharing service and a public transport service. In both services, we used StructuredTaskScope
to concurrently query the proper servers. However, only the servers were called concurrently while these two services were executed sequentially – first, we run the ridesharing service (which queries concurrently three servers), and after we have a result from this service, we run the public transport service (which queries concurrently four servers).
Going further, we want to assemble these two services into a third service capable of running them concurrently as in the following diagram:
Figure 11.6: Running the ridesharing and public transport services concurrently
We start by assembling the RidesharingOffer
and PublicTransportOffer
into a record named TravelOffer
:
public record TravelOffer(RidesharingOffer ridesharingOffer,
PublicTransportOffer...