Jeśli używasz dostawcy danych ADO.NET i SQL, spójrz na metodę SqlCommand.Cancel. To robi to, czego szukasz. Jednak próbuje anulować, a anulowanie może zająć trochę czasu. Zasadniczo to SQL Server decyduje, kiedy zaakceptować żądanie anulowania. Gdy zapytanie zostanie anulowane, powinieneś otrzymać SqlException, który wskazuje, że operacja została anulowana przez użytkownika. Najwyraźniej nie chcesz traktować tego wyjątku jako wyjątku i obsługiwać go specjalnie, na przykład jeśli SqlException jest spowodowany anulowaniem operacji przez użytkownika, po prostu go połknij.