该程序可在Windows 11(22000.1098)中运行,但不能在22621.525中运行



我运行相同的二进制文件,它在旧版本的Windows 11(以及早期版本的Windows(中工作,但在22621.525启动时崩溃。我已经查看了代码(C#(,以及它将某些内容设置为Double的原因。NaN。将其设置为实际值可以使代码正常工作。

调用堆栈看起来非常无辜。Main((->MainForm((->InitializeComponent((->MyControl((,这样就不会出现任何递归。

新版本有什么变化?

如果运行旧代码,就会发生这种情况。该问题发生在FPU中,可能是由较旧的程序或库引起的。它出现在Windows 11(22621.525(中,但没有出现在早期版本中,这可能与Windows工作方式的变化有关。

无论如何,你可以通过添加强制重置PFU来解决这个问题

try
{
throw new Exception("Please ignore, resetting FPU");
}
catch {}

在调用导致异常的函数之前。如果您需要从多个地方进行操作,最好将其封装到一个函数中。

最新更新