首页 新闻 会员 周边

asp.net的问题

-1
悬赏园豆:100 [已解决问题] 解决于 2015-07-24 10:40

我换个方式提这个问题吧,免得被线程混淆了:

我先打开第2个页面,接着打开第1个页面。

问题是,为什么第一个页面必须等第二个页面返回了才能返回?

注:google被墙了,http.post会耗时十几秒。

问题补充:

实际的问题应该是这样的:我用asp.net写的网站,部署在本机。好像每次都只允许一个人访问。如果第一个人打开一个页面一直没有返回的话,第二个人打开任何页面也都处于等待状态。

地月银光的主页 地月银光 | 初学一级 | 园豆:112
提问于:2015-07-23 14:35
< >
分享
最佳答案
0

new Entities()

这个Entities是你自己写的还是EF的?

 

再者,你这两句代码

var cnt=EFThreadSafeTest(30));

var cnt=EFThreadSafeTest(0));

如果这样写,一定是上面那句要先执行完才到下一句的,除非你不是这样写的。

收获园豆:30
爱编程的大叔 | 高人七级 |园豆:30839 | 2015-07-23 14:41

@地月银光: 在 asp.net 中禁用会话。

Launcher | 园豆:45045 (高人七级) | 2015-07-23 15:22

@地月银光: 我假设你的猜测是正确的,你可以把你截图的两个页面放到不同的机器上去运行后来证实。

Launcher | 园豆:45045 (高人七级) | 2015-07-23 17:05
其他回答(5)
0

你的多线程方法呢?

收获园豆:10
幻天芒 | 园豆:37175 (高人七级) | 2015-07-23 14:44
0

你应该用多线程调用这个方法,

类似,

Thread t1 =new Thread(EFThreadSafeTest);

Thead t2 =new Thead(EFThreadSafeTest);

t1.Start();

t2.Start();

收获园豆:20
chengdu.jack.li | 园豆:274 (菜鸟二级) | 2015-07-23 15:19
0

你的方法里,System.Threading.Thread.Sleep是在当前主线程中执行的,顺序调用当然要一个一个来。看一下多线程编程实践,CSDN、MSDN、博客园等讲这种示例的多的是。最好再学习下多线程编程常见原语,推荐看看经典.NET实践相关的书籍,通常都有最佳实践之类的章节。

收获园豆:20
JeffWong | 园豆:2328 (老鸟四级) | 2015-07-23 15:45
0

显然EF是没有问题的.只是你写的DEMO有问题,

System.Threading.Thread.Sleep(sleepSeconds * 1000);这句是当前线程休眠. :( 

请求的是一个线程所以必须排队~

收获园豆:20
万雅虎 | 园豆:326 (菜鸟二级) | 2015-07-23 17:02
0

晚风轻起 | 园豆:202 (菜鸟二级) | 2015-07-28 15:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册