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?