日期:2014-05-19  浏览次数:20502 次

ASP.NET多线程的问题!
我用多线程执行数据库的导入操作,但为什么不会热行那个数据库的导入方法呢?一定要加上Thread.Sleep(20000)才可以执行那个方法,而且Thread.Sleep(20000)中的20000也不一样,如果这个数字小了,就执行一半方法,为什么呢,十再想不通。,为什么要加这句话呢?请高手指点!如果加了这句话,那好像多线程的操作就不起作用了,导入时还是这样的慢。十万火急!请给个指点!谢谢!

------解决方案--------------------
ASP.NET能用多线程吗?

assetThread.Start();
在这之后,新线程开始运行。
Thread.Sleep(20000);
主线阻塞20秒。
假设新线程要18秒才能生成所有HTML页面。

那么在这阻塞的20秒后,线程的任务就运行完了,所有你得到了你要的结果。

如果你阻塞10秒,10秒后,主线程就开始继续后面的语句(假如用了1秒),主程序语句结束的时,会中止所有进程,那么线程完成比例为11/18。没有等到你要的结果。

因为assetThread是局部变量,主程序段结束后,assetThread就会被销毁。

试试把assetThread定义为全局静态变量试试。