Unity3d 团结冻结在“上”;开始MonoManager重新加载程序集;。线程在停止事件时终止
我有一个统一的项目,我认为它在游戏和编译事件上会被冻结。 据我所知,可能是因为一些相关的事情。 似乎在播放模式停止/启动之间持续存在的阻塞网络线程可能是导致问题的原因。 我已经研究了如何跟踪和停止线程,这样当我在编辑器中停止播放模式时,我就可以处理它了,但据我所知,您可以处理自己创建的线程 由于项目冻结,没有机会进行调试,因此没有机会检查哪个线程导致了问题(如果有),因为我的项目很大,所以我的问题是,当您停止时,是否有一种干净的方法来停止/终止编辑器上的所有活动线程 提前感谢您的帮助 冻结发生时,这是unity任务管理器。请注意,CPU为0%Unity3d 团结冻结在“上”;开始MonoManager重新加载程序集;。线程在停止事件时终止,unity3d,freeze,Unity3d,Freeze,我有一个统一的项目,我认为它在游戏和编译事件上会被冻结。 据我所知,可能是因为一些相关的事情。 似乎在播放模式停止/启动之间持续存在的阻塞网络线程可能是导致问题的原因。 我已经研究了如何跟踪和停止线程,这样当我在编辑器中停止播放模式时,我就可以处理它了,但据我所知,您可以处理自己创建的线程 由于项目冻结,没有机会进行调试,因此没有机会检查哪个线程导致了问题(如果有),因为我的项目很大,所以我的问题是,当您停止时,是否有一种干净的方法来停止/终止编辑器上的所有活动线程 提前感谢您的帮助 冻结发生时
您好,这不是一个解决方案,但可能会对您有所帮助。如果您使用的是某些TCPclient或UPDclient,请记住,在停止编辑器时需要关闭客户端
using UnityEngine;
using UnityEngine.UI;
#if UNITY_EDITOR
using UnityEditor;
#endif
public class DetectStopEditor : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
#if UNITY_EDITOR
EditorApplication.playModeStateChanged += Algo;
#endif
}
#if UNITY_EDITOR
public void Algo(PlayModeStateChange state)
{
if (state == PlayModeStateChange.ExitingPlayMode)
{
//DO SOMETHING
Debug.Log(string.Format("[{0}] Exiting playmode.",state.ToString()));
}
}
#endif
}
非常感谢你的回答。在五月的案例中,当我删除“Temp”和“Library”文件夹并重新导入项目时,问题就不再出现了。如果我能复制这个问题,我会检查你的建议