c# 多线程 由于代码已经过优化或者本机框架位于…

2018-06-22 07:54:46来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

在网上找到一段解释:

堆栈是用于存放变量和方法,“位于调用堆栈之上”,我们可以理解为堆栈里面已经没有变量和方法可以调用了,其实也就是程序已经结束了,堆栈都空了(指针在原本堆栈的外部--之上)。
放在我的实际场景里面:我开了一个异步去处理一个事件,而主线程并没有等待这个异步就直接结束了,实际上就是主线程关闭了,异步却还在运行,结果就是内存都释放了,异步当然找不到变量了,就报错了。

触发场景:多线程跑大数据量或者很复杂的计算逻辑的时候,执行时间超过20分钟,线程被IIS自动回收了

解决方案: IIS->应用程序池->找到应用的应用程序池,右键,高级设置->将闲置超时(分钟)改为1740(默认为20分钟)

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:通过Web Service实现IP地址查询功能

下一篇:在ASP.NET Core Web API中为RESTful服务增加对HAL的支持