C#作业系统中的安全系统

比赛条件

编写多线程代码时,总是存在竞争条件的风险。当一个操作的输出取决于其控制之外的另一个过程的定时时,发生竞争条件。

竞争条件并不总是一个错误,但它是不确定行为的来源。当竞争条件确实导致错误时,可能很难找到问题的根源,因为它取决于时间,因此您只能在极少数情况下重新创建问题。调试它可能会导致问题消失,因为断点和日志记录可以改变单个线程的时间。竞争条件是编写多线程代码时最重大的挑战。

Read More

C#作业系统提示和故障排除

使用Unity C#作业系统时,请确保遵守以下内容:

不要从作业访问静态数据

从作业访问静态数据会绕过所有安全系统。如果您访问错误的数据,您可能会以意想不到的方式崩溃Unity。例如,访问MonoBehaviour可能会导致域重新加载崩溃。

注意:由于存在这种风险,Unity的未来版本将阻止使用静态分析从作业进行全局变量访问。如果您确实访问作业中的静态数据,则应该期望您的代码在Unity的未来版本中中断。

Read More

隐藏边栏