c# - 计时器导致程序卡住(Windows 窗体),引发“调试器未正确安装”错误
问题描述
希望大家都好。
我正在尝试创建一个连接到 MySQL 数据库的实时仪表板。SQL 数据库使用“INSERT”命令从外部命令更新,以记录新的传感器读数。
我有 6 个标签来显示实时传感器读数。我的目标是每 1 秒更新一次显示的值。因此,我想使用我不熟悉的计时器配置。我查找了源代码和此站点,以创建一些代码来实现该目的,但是,我没有成功。
这是我的代码的一部分:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
using System.Windows.Forms;
namespace LVAD_Form
{
public partial class Veri_Ekrani : Form
{
public Veri_Ekrani()
{
InitializeComponent();
}
private void Veri_Ekrani_Load(object sender, EventArgs e)
{
Timer timer = new Timer();
timer.Interval = (3 * 1000); // 10 secs
timer.Tick += new EventHandler(timer_Tick);
timer.Start();
}
private void timer_Tick(object sender, EventArgs e)
{
String username = "bla";
String password = "blabla";
MySqlConnection connection = new MySqlConnection("host=blabla;username=" + username + ";password=" + password + ";");
String strSQL = "SELECT * FROM haberlesme_verisi WHERE sayici=(SELECT MAX(sayici) FROM haberlesme_verisi);";
var cmd = new MySql.Data.MySqlClient.MySqlCommand(strSQL, connection);
connection.Open();
var dr = cmd.ExecuteReader();
if (dr.HasRows)
{
dr.Read();// Get first record.
// indices 0 and 1 are for timestamp and counter.
labelVoltaj.Text = dr.GetString(4);
labelAkim.Text = dr.GetString(5);
labelDevir.Text = dr.GetString(6);
labelBasinc.Text = dr.GetString(2);
labelAkis.Text = dr.GetString(3);
}
else
{
labelVoltaj.Text = "Veri Alınamadı";
labelAkim.Text = "Veri Alınamadı";
labelDevir.Text = "Veri Alınamadı";
labelBasinc.Text = "Veri Alınamadı";
labelAkis.Text = "Veri Alınamadı";
}
dr.Close();// Close reader.
connection.Close();// Close connection.
}
private void msg_Box_TextChanged(object sender, EventArgs e)
{
}
private void chart2_Click(object sender, EventArgs e)
{
}
private void chart2_Click_1(object sender, EventArgs e)
{
}
private void chart1_Click(object sender, EventArgs e)
{
}
}
}
当我运行脚本/表单时,程序在大约 3 秒后卡住了。然后我收到错误“调试器未正确安装。运行安装程序以安装或修复调试器”。此时,进程内存图表也卡在 87% 左右。
我还注意到,当我关闭错误消息时,我看到我的脚本始终位于语句中:
var dr = cmd.ExecuteReader();
如果代码结构不佳,我很抱歉。我有一个(与学校无关的)作业,其截止日期很快,这是我第一次使用 C# 和 Windows 窗体设计器。我没有太多时间掌握基础知识——这绝对不是一个好方法,但现在时间对我来说非常重要。
解决方案
推荐阅读
- odoo - 如何在现有记录 odoo 上运行计算
- xcode - Xcode 上的 Flutter 应用程序升级后无法启动
- angular - 从 canActivate 导航时的角度路由器无限循环
- mjml - 如何在 MJML 中使用 php 变量
- r - 计算面板中 os 个人的数量以及他们在面板中出现的次数
- javascript - 从对应于 Key 的 JSON 角度提取数据
- c++ - C++:安全使用 vsprintf
- javascript - 如何根据另一个自动完成字段清除自动完成材料 ui 字段?
- shell - Jenkins 将参数作为 env 传递给 shell 脚本,以将 sh 传递给 kubernetes pod
- node.js - 当我在 eggjs 模型的“findAll”函数中使用“Op.notLike”时,如何避免转义字符 \"?