C# 记录线程卡主的问题

科技资讯 投稿 37600 0 评论

C# 记录线程卡主的问题

所以dump分析日志

!eeversion

!runaway

先看第一条

!clrstack

那是不是。因为这条线程重复利用。然后累计的时间比较长呢?

那么他真的是卡主了很久嘛?

底层的人员反馈,正常情况不会出现卡主的。就算是网络调用失败了一般一分钟就会爆超时异常。短时间内没有给出原因。

至此真想大白,是我们的条件写的有问题,死循环了,而不是最开始定位的Socket 长时间未响应。

关于这种死循环取数据的,一定要设置通用的跳出条件,一般情况下可以设置Deadline 设置某一个时间内还没有执行完的话,跳出,可以设置尝试重试次数,比如说1000次,还没有结论,就跳出。然后记录Debug日志,方便将来断言这个地方确实是有问题。然后尝试修复这个问题。

编程笔记 » C# 记录线程卡主的问题

赞同 (40) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽