I modi ci sono.
Personalmente, quando devo effettuare una operazione lunga in una applicazione web, creo un web service che presenta una funzione che si aggancia alla libreria dove si effettua l'elaborazione vera e propria. Dalla pagina web, chiamo il webservice e l'inizio della procedura in maniera asincrona e quando finisce avverto l'utente che nel frattempo puo' anche fare altro.
Se invece si volesse fare una progress bar, ad una veloce ricerca su codeproject vengono fuori questi link
http://www.codeproject.com/aspnet/pr...Barcontrol.asp
http://www.codeproject.com/useritems...er_control.asp