Start here. This is the direct spoken answer to practice first.
Why this question matters
These three methods look similar in Program.cs, but they create different control flow. Understanding that flow makes middleware-order bugs much easier to predict.
Use adds middleware that may do work before and after the next component. It continues by awaiting next and short-circuits when it does not call it. Run is terminal because it has no next delegate. Map creates a separate pipeline for a matching path prefix. Because control moves forward and then unwinds, order affects both request handling and response work.