I¡¯m not sure that¡¯s an error ¡ª in C# you can catch a ¡°ThreadAbortException¡± for an opportunity to do something just as your thread is being aborted ¡ª
Gather() is a blocking call that doesn¡¯t return until the delimiter has been detected, and if you wrap that in a try-catch and get a thread abort exception, at most that¡¯s an opportunity to do a last-minute operation, but certainly isn¡¯t an ¡°error¡± ¡ª if it¡¯s an unwanted opportunity, you don¡¯t have to do anything with it or report it. Just exit instead