Мне нужно заполнить древовидную структуру из моей файловой системы. и мой код работает без проблем. Однако, когда я пытаюсь заполнить диск «C», это занимает много времени. Поэтому я решил использовать BackroundWorker. Проблема: я получаю это исключение ниже.Путаница о том, как реализовать BeginInvoke
Действие, выполняемое этим элементом управления, вызывается из неправильной резьбы. Маршал к правильной теме, используя Control.Invoke или Control.BeginInvoke для выполнения этого действия.
Я искал решение и добавить это заявление
CheckForIllegalCrossThreadCalls = false
Оно не worked.So Я искал для программирования асинхронная и пытался реализовать начать Invoke я coudnt сделать это сейчас я больше запутывается
Я не совсем понимаю вопрос. Является ли проблема обновлением 'Control' из другого потока? – Codor
Как вы пытались внедрить 'BeginInvoke'? –
BackgroundWorker совсем не поможет. Загрузка большого количества данных в пользовательский интерфейс всегда происходит в потоке пользовательского интерфейса. Кроме того, это * загрузка * занимает много времени. Там, где вы его запускаете, все равно потребуется много времени. Уменьшите объем данных, которые вы загружаете, используя технологии виртуализации, загружая узлы * только *, когда древовидная структура расширяется и т. Д. –