Управление ListView загружается очень медленно

См. Рекомендации, упомянутые в статье GitHub

. Одной из альтернатив для монтирования общего ресурса через порт 445 является синхронизация файлов Azure, которая позволяет создавать кэш Общий доступ к файлам Azure на локальном сервере Windows. Синхронизация файлов Azure отправляет данные только через HTTPS файлов Azure (используя API-интерфейсы File REST). Подробнее о синхронизации файлов Azure можно узнать здесь: https://docs.microsoft.com/en-us/azure/storage/files/storage-sync-files-planning

Можно вы монтируете этот диск с виртуальной машины в Azure, просто чтобы убедиться, что это не проблема с общей папкой? На самом деле, я бы попробовал это с виртуальной машины в другом регионе, если вы можете, что подтвердит, что SMB 3.0 работает правильно.

Устранение неполадок при хранении файлов Azure

Пожалуйста, сообщите нам, помогает ли вышеприведенное, или вам нужна дополнительная помощь по этому вопросу.

Если проблема не устранена, поделитесь снимком экрана с сообщением об ошибке

6
задан shruti1810 28 May 2015 в 05:58
поделиться

3 ответа

Я могу думать о паре вещей:

В то время как... Двиньтесь более медленный механизм цикличного выполнения; используйте Для... Затем. Для... Затем быстрее - даже если необходимо выполнить другую команду для получения RecordCount. Это - то, что я использую:

With rs
  If .RecordCount > 0 Then
    '-- MoveLast...MoveFirst will update the .RecordCount; depending on the type of DAO Recordset, RecordCount might only return "1" when there are more than that.
    .MoveLast
    .MoveFirst

    For lngCounter = 1 To .RecordCount
      '-- Code to add ListItems here

      .MoveNext
    Next lngCounter
  End If
  .Close
End With

Используйте С... Конец С для добавления Вашего SubItems:

With Me.listViewData.ListItems.Add
  .Text = Nz(rs!Name, "")
  .SubItems(1) = Nz(rs!Company, "")
  .SubItems(2) = Nz(rs!QuoteNumber, "")
  .SubItems(3) = Nz(rs!OrderDate, "")
  .SubItems(4) = Nz(Format(rs!GrandTotal, "Currency"), "0.00")
  .SubItems(5) = Nz(Format(rs!GrandTotal * rs!Customfield1 / 100, "Currency"), "")
  .SubItems(6) = Nz(rs!Customfield1, "")
  .SubItems(7) = Nz(rs!Date1, "none")
  .SubItems(8) = Nz(rs!Detail, "")
  .SubItems(9) = Nz(rs!CustomT1, Nz(rs!UserID, ""))
End With

Перенесите код populater в:

DoCmd.Echo False

'-- Populate code

DoCmd.Echo True

Надежда, которая помогает!

1
ответ дан 17 December 2019 в 18:20
поделиться

Первая вещь - Вы, должен сделать, избавляются от "doevents", Это - реальный уничтожитель производительности.

Необходимо ли загрузить listview динамично? Почему бы не связывать его непосредственно с источником данных?

2
ответ дан 17 December 2019 в 18:20
поделиться

Проверьте методы управления Listview для чего-то как beginupdate / endupdate или установите обновление на ложь (если возможный). Это означает, что UI не попытается обновить экран после того, как каждый объект будет добавлен, таким образом, делая добавление намного более быстрым.

Управление Listview разработано для взятия больших количеств объектов, таким образом, это должно быть возможно с небольшим количеством рытья.

0
ответ дан 17 December 2019 в 18:20
поделиться