c# - 货币汇率表显示错误符号
问题描述
我创建了一个名为“ETM”的程序。
这些表是一种打印机,可以通过本地网络使用打印服务器进行访问。使用该程序的公司在全国拥有大约 50 张桌子(有关打印服务器的信息:https ://www.tp-link.com/us/products/details/TL-PS110P.html )
该程序有两种模式:手动模式和自动模式。
1)手动模式允许用户在文本框中输入汇率,然后按“发送数据”按钮,输入的货币汇率将显示在所有表格上。
2) 自动模式每 20 秒从服务中获取货币汇率,如果汇率发生变化,则执行与手动模式相同的逻辑。
// Table object implementation
public class ExchangeTable : ITable {
public string TableName { get; set; }
public IPAddress IPAddress { get; set; }
public int Port { get; set; }
public IEnumerable<Currency> Currencies { get; set; }
public string LogMessage { get; set; }
}
// Currency object implemetation
public class Currency {
public object CurrencyName { get; set; }
public string BuyPrice { get; set; }
public string SellPrice { get; set; }
}
当程序启动时,用户从 List Check Box 中检查表格,然后使用 MANUAL MODE-s “SEND DATA”按钮,或 AUTO MODE-s “START PROCESS”按钮执行操作。
// data sending logic
public virtual void SendDataToTable(ITable table) {
if (table != null && table.Currencies != null) {
using (TcpClient client = new TcpClient()) {
try {
string dataToSend = GetPrintString(GetPrices(table));
client.Connect(table.IPAddress, table.Port);
if (client.Connected) {
byte[] buffer = Encoding.ASCII.GetBytes(dataToSend);
using (NetworkStream stream = client.GetStream()) {
stream.Write(buffer, 0, buffer.Length);
}
if (table is ExchangeTable)
((ExchangeTable)table).LogMessage = "SUCCESS";
}
}
catch (Exception ex) {
if (table is ExchangeTable)
((ExchangeTable)table).LogMessage = "FAILURE: " + ex.Message;
}
}
}
}
在此之后一切正常。所有 50 个表格都显示正确的数据,但经过一段时间(大约 1 小时或更长时间)后,5 个表格(总是相同的表格)显示错误的符号,其余 45 个表格仍然显示正确的数据。所有这 50 张桌子都是一样的。我不知道为什么它只发生在 5 张桌子上而不是所有桌子上。你知道如何解决这个问题吗?:(
解决方案
问题很可能出现在代码的另一部分,因为在您发布的代码中,该表只是一个已经预定义的参数,已经包含 CurrencyName 对象。尝试发布您为每个表定义 CurrencyName 的代码。
但是,我想知道为什么 CurrencyName 是一个对象而不是更具体的东西,比如字符串或枚举。在这种情况下,错误的符号错误可能会导致运行时错误,您会发现它更容易。
推荐阅读
- c# - 如何在c#中检查双精度值是否为空?
- python - 有没有办法将 2 个数据帧与 labda 函数合并?
- javascript - Vanilla JS 在点击事件中不是这个
- vb.net - 数据库不会自动更新
- django - 如何在 django 中实现结合律?
- php - 如何在数据透视表中搜索两个用户拥有的行
- vue.js - Prismic/GraphQL 和 Gridsome/Vue 渲染的 v-html 显示在字符串中
- css - 草图中的文本垂直对齐方式与 css 中的不同
- python - 仅由 conv2d 层组成的 keras 中的训练网络
- c# - 如何在 xUnit 中模拟 ObjectMapper?