Обновить данные из хранимой процедуры

У меня есть приложение C # Entity Framework. Я пытаюсь запустить хранимую процедуру из кода (никаких проблем с этим). его долго работает, около 30 минут. Я записываю журнал каждой транзакции в таблицу SQL по мере прохождения процесса. Я пытаюсь запустить процедуру из приложения, но затем отображать последние 10 записей журнала на экране, возможно, запрашивая каждые 10 секунд. это покажет прогресс.

 private void Window_Loaded_1(object sender, RoutedEventArgs e)
    {
        Task.Run(() => _serviceProduct.RefreshAllAsync());

        _cvsLog = (CollectionViewSource)(FindResource("cvsLog"));
        var dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
        dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
        dispatcherTimer.Interval = TimeSpan.FromSeconds(10);
        dispatcherTimer.Start();
    }


 private void dispatcherTimer_Tick(object sender, EventArgs e)
    {
        _cvsLog.Source = _serviceProduct.GetRefreshLog();
    }

Я изменил код для упрощения. Поток блокируется в процессе dispatcherTime_Tick. Похоже, что хранимая процедура в порядке.

Здесь называется услуга.

 public ObservableCollection<RefreshLog> GetRefreshLog()
    {
        using (var db = new HiggidyPiesEntities())
        {
            var recs = (from x in db.RefreshLogs orderby x.LG_ID descending select x).Take(30);
            var obs = new ObservableCollection<RefreshLog>(recs);
            return obs;
        }
    }

Я был на фоне рабочего маршрута и task.run, но процедура продолжает блокировать поток.

Я даже думал о запуске задания SQL из кода, а затем проследил за журналом с помощью обращений к базе данных. Может быть, сервисный брокер может быть выбором, чтобы рассмотреть?

какие-нибудь мысли о том, по какой дороге я должен идти с этим типом проблемы? заранее спасибо Скотт

Ответы на вопрос(2)

Ваш ответ на вопрос