我用多线程执行数据库的导入操作,但为什么不会热行那个数据库的导入方法呢?一定要加上Thread.Sleep(20000)才可以执行那个方法,而且Thread.Sleep(20000)中的20000也不一样,如果这个数字小了,就执行一半方法,为什么呢,十再想不通。,为什么要加这句话呢?请高手指点!如果加了这句话,那好像多线程的操作就不起作用了,导入时还是这样的慢。十万火急!请给个指点!谢谢!
解决方案 »
- ASP.NET配置表单??
- GirdView中使用SelectedIndexChanging获取当前行中某值
- 请教!需要两次得到用户的确认操作,如何实现,后台如何得到数据啊!
- dotnetCHARTING统计插件的使用问题
- 关于文本框 和修改的问题?
- 一个效率的疑问
- detailspage.aspx?id={0}" 如何生成detailspage.aspx?id={0}这个页面这个页面该怎么写.
- 一个简单的正则表达式
- 一个简单的问题(关于FALSE)请大家帮忙
- crystal report 的数据绑定
- datagrid中e.items[0].controls[i]的问题!
- 请教哪位高手知道datatable中的数据导为pdf文件
assetThread.Start();
Thread.Sleep(20000);为什么加Thread.Sleep(20000)才会执行updateDepart这个方法呢?没这句话就不执行这个方法
有问题吗!!我还把线程句并放 cache里面的!~!
在这之后,新线程开始运行。
Thread.Sleep(20000);
主线阻塞20秒。
假设新线程要18秒才能生成所有HTML页面。那么在这阻塞的20秒后,线程的任务就运行完了,所有你得到了你要的结果。如果你阻塞10秒,10秒后,主线程就开始继续后面的语句(假如用了1秒),主程序语句结束的时,会中止所有进程,那么线程完成比例为11/18。没有等到你要的结果。因为assetThread是局部变量,主程序段结束后,assetThread就会被销毁。试试把assetThread定义为全局静态变量试试。