我目前正在开发一个用 C++ 和 C# 编写的(遗留)程序;它执行一些重量级计算,但应该是完全确定的。即相同的输入将产生相同的输出......问题是2次运行(在同一台计算机上,使用相同的编译可执行文件)产生略有不同的输出。
应用程序读取和写入 SQL Server 数据库(它对 DB 具有唯一的访问权限,因此不应有其他任何东西干扰 DB 值)。
运行之间唯一明显的区别是它们每个都被分配了一个唯一的名称(只是一个字符串变量)。
代码中没有随机对象,所有循环都运行预定次数的迭代或直到满足条件,它们不会运行一定的时间。有少量的多线程,我确信它是线程安全的,但我会自己检查一下。
我应该寻找其他明显的东西,这会导致这种异常行为吗?