Lor*_*tel 5 c# backgroundworker
C#,使用VS2010,我有一些没有意义的东西.
在启动时,我的程序需要从文本文件中加载数百k.在确保加载代码工作正常后,我将它放在后台线程中.只要从IDE内部运行一切都很好,但是当它独立运行时,线程会说它已经完成了.这当然是热潮.
触发代码:
BackgroundWorker Background = new BackgroundWorker();
Background.RunWorkerCompleted += new RunWorkerCompletedEventHandler(DatabaseLoaded);
Background.DoWork += new DoWorkEventHandler(delegate { Database.Load(); });
Background.RunWorkerAsync();
Run Code Online (Sandbox Code Playgroud)
以及正在蓬勃发展的东西DatabaseLoaded().
我放了一些消息框来跟踪发生了什么:Load()方法的第一行和最后一行以及第一行DatabaseLoaded().
在IDE中,这会触发我的期望: Load()开始,Load()完成,DatabaseLoaded().但是,当单独运行时,我Load()开始,DatabaseLoaded()然后是未处理的异常框(加载器甚至没有构建空表,更不用说填充它们了.)
我疯了还是微软?
Sam*_*m B 16
RunWorkerCompleted将在发生错误时调用(例如未处理的异常Database.Load()).检查的Error属性RunWorkerCompletedEventArgs.
| 归档时间: |
|
| 查看次数: |
432 次 |
| 最近记录: |