C #, используя VS2010, и у меня есть то, что не имеет смысла.
При запуске моей программе нужно загрузить несколько сотен килограмм из текстовых файлов. Убедившись, что код загрузки работает нормально, я добавил его в фоновый поток. Пока это выполняется изнутри IDE, все в порядке, но когда он запускается автономно, поток говорит, что он выполнен, когда это не так. Это, конечно, бум.
Код триггера:
BackgroundWorker Background = new BackgroundWorker();
Background.RunWorkerCompleted += new RunWorkerCompletedEventHandler(DatabaseLoaded);
Background.DoWork += new DoWorkEventHandler(delegate { Database.Load(); });
Background.RunWorkerAsync();
и бум, который сейчас идет, находится в DatabaseLoaded()
.
Я поместил несколько ящиков сообщений для отслеживания происходящего: первая и последняя строки метода Load()
и первая строка DatabaseLoaded()
.
В IDE это срабатывает, как я и ожидал: Load()
начало, Load()
готово, DatabaseLoaded()
. Однако при автономном запуске я получаю Load()
начало, DatabaseLoaded()
, а затем необработанное поле исключений (загрузчик даже не смог создать пустые таблицы, не говоря уже о их заполнении).
Я чокнутый или Microsoft?