C#变量在一台特定的PC上损坏,但在所有其他PC上工作正常
我有一个用C#编程的工具,它的可执行文件在许多用户之间共享 在某些PC上,我发现-特定变量被清除(即列表本身被清除);这会导致工具抛出异常 同一工具在其他PC上的所有条件下都能正常工作。 如果我将这几台PC与所有其他PC进行比较,在RAM、操作系统、任务负载等方面没有差异。 此外,该工具及其依赖项以及使用该工具的步骤都是相同的 我对这种奇怪的行为感到困惑。我的另一个问题是受影响的个人电脑和他们的用户位于不同的国家。因此,我无法手动检查PC参数或进行调试。我依赖于我得到的日志 你们中有谁会面临类似的问题吗 你能告诉我,两台配置相同的电脑如何表现不同吗?环境变量、系统参数等是否存在依赖关系。 问候,,C#变量在一台特定的PC上损坏,但在所有其他PC上工作正常,c#,memory,corruption,C#,Memory,Corruption,我有一个用C#编程的工具,它的可执行文件在许多用户之间共享 在某些PC上,我发现-特定变量被清除(即列表本身被清除);这会导致工具抛出异常 同一工具在其他PC上的所有条件下都能正常工作。 如果我将这几台PC与所有其他PC进行比较,在RAM、操作系统、任务负载等方面没有差异。 此外,该工具及其依赖项以及使用该工具的步骤都是相同的 我对这种奇怪的行为感到困惑。我的另一个问题是受影响的个人电脑和他们的用户位于不同的国家。因此,我无法手动检查PC参数或进行调试。我依赖于我得到的日志 你们中有谁会面临类似
萨钦没有人能用你提供的有限信息回答你的问题。不过,我可以给你一些建议,你可以如何绕过这个问题
这可能是线程问题吗?有时,具有不同可用内核数的计算机对竞争条件的响应不同。任何设备都可能受到随机内存问题、存储不一致性的影响,并且在Windows计算机中,臭名昭著的Windows注册表可能包含许多不同的值,这些值会影响程序的执行方式 我建议您在正在工作的机器上运行任何可靠的工具来执行内存诊断,并将其与未工作的机器进行比较
改进工具中的逻辑,检查变量内容并执行try/catch操作,尝试检测根本原因并记录这些错误,以诊断正在发生的情况它认为您应该在区域/文化设置中搜索问题。这句话“我的另一个问题是受影响的PC,他们的用户位于不同的国家/地区”“提示变量与双精度to字符串有关,反之亦然。该列表可能会被解析异常中断 如果在开始时显示/记录
Thread.CurrentThread.CurrentUICulture.NumberFormat.NumberDecimalSeparator
,该怎么办
然后应该使用cultureinfo进行解析
例如:
CultureInfo usCultureInfo = new CultureInfo("en-US");
double result;
if (!double.TryParse("0.231312", NumberStyles.Float, usCultureInfo, out result))
{
}
另一个问题可能是安装了正确的.NET版本(完整/客户端配置文件)谢谢您的宝贵建议和提示 由于CultureInfo不同而发生错误。 这个可执行文件也在读取XLS文件以获取一些数据。 由于区域性信息中存在错误,XLS读取未成功,从而损坏了少数变量集 为了解决这个问题,我有两个选择: 1.安装MS office语言包 2.在程序中更改文化信息,如下所示: CultureInfo=新的CultureInfo(“美国”) @杰伦·范兰根先生 特别感谢你 问候,,
Sachin您应该检查用户权限是否不同处理器架构是什么?您是否检查了代码中清除了
列表
的每个位置?您能否将其替换为一个只读集合
,并查看是否有内容正在清除列表中不应清除的内容?还有,“特定变量被清除”-哪一个变量,在什么情况下?没有任何源代码就很难诊断。投票结束是因为在这种详细程度上,任何答案都只能是推测性的。提供一些代码。