Это можно сделать, но я бы использовал Ajax, чтобы сделать опыт лучше.
По сути, вы вызываете ваш метод, и он возвращает идентификатор для потока. Это не обязательно должен быть идентификатор потока, но вам нужен какой-то уникальный идентификатор, который можно передавать между страницами / вызовами.
Прежде чем вы вернетесь с этого вызова / страницы, вы должны выполнить свой поток.
Затем, когда ваш клиент проверяет состояние, он проверяет сеанс или какое-либо другое общее состояние, в результате чего результат будет указываться на идентификаторе, который вы вернули ранее.
Если он находит значение, соответствующее ключу, то он отображает результат (и удаляет результат из общего состояния), в противном случае он проверяет снова через определенный период времени.