C# MySqlDataReader和定时器同步问题

mmvthczy  于 2023-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(175)

我使用计时器轮询视图,但经过几轮轮询后,输出失去同步。投票时间似乎也不重要。我的代码有什么问题吗
我想知道是我的计时器出了问题还是读卡器出了问题
任何想法将帮助很大!
public void onDestinyNode(){

  1. timer = new Timer(int.Parse(Properties.Settings.Default.DbPoll) * 1000);
  2. timer.Elapsed += OnEventExecution;
  3. //kill timer
  4. timer.Stop();
  5. timer.Start();
  6. System.Diagnostics.Debug.WriteLine("Timer Started " + P Properties.Settings.Default.DbPoll + " secs");
  7. string connectionString;
  8. // MySqlConnection conn;
  9. connectionString = "server=" + Properties.Settings.Default.DbServer + ";database=digital_passports;uid=" + Properties.Settings.Default.DbUser + ";pwd=" + Properties.Settings.Default.DbPass ;
  10. try
  11. {`your text`
  12. using ( var conn = new MySqlConnection(connectionString))
  13. {
  14. try
  15. {
  16. conn.Open();
  17. System.Diagnostics.Debug.WriteLine("Database Connection Connected");
  18. }
  19. catch (Exception ex)
  20. {
  21. System.Diagnostics.Debug.WriteLine("Database Connection Failed..." + ex);
  22. }
  23. var stm = "SELECT * from vtokenpool limit 10";
  24. using (var cmd = new MySqlCommand(stm, conn))
  25. {
  26. stateText.Text = "Running";
  27. stateText.ForeColor = System.Drawing.Color.Green; ;
  28. try
  29. {
  30. using (MySqlDataReader rdr = cmd.ExecuteReader())
  31. {
  32. while (rdr.Read())
  33. {
  34. System.Diagnostics.Debug.WriteLine(rdr[0] + " -- " + rdr[1]);
  35. /*
  36. object[] tempRow = new object[rdr.FieldCount];
  37. for (int i = 0; i < rdr.FieldCount; i++)
  38. {
  39. tempRow[i] = rdr[i];
  40. }
  41. dataList.Add(tempRow);
  42. */
  43. }
  44. rdr.Close();
  45. System.Diagnostics.Debug.WriteLine("Reader Closed");
  46. conn.Close();
  47. System.Diagnostics.Debug.WriteLine("Connection Closed");
  48. }
  49. }
  50. catch (Exception ex)
  51. {
  52. System.Diagnostics.Debug.WriteLine(ex);
  53. }
  54. }
  55. }
  56. }
  57. catch(Exception ex)
  58. {
  59. System.Diagnostics.Debug.WriteLine(ex);
  60. }
  61. }

输出在下面

  1. 56 -- q=92e76406787f9ce47292a0e2e87fdce6954f71f76a4773117b907be1e74dc13e
  2. 52 -- q=acde8e3015b8c15e66fe0be128718355a3c6fe438732b719f51adb79ca46d7f2
  3. Timer Ended
  4. 53 -- q=0c5bf67caf9e5b73de261364b8c79f87b3b27c37613ab7f6a117e91e3454947a
  5. 57 -- q=3b225ce87a3157625f9444e90dddfe74580b9ae1258b3c551c300d52012a05fd
  6. 54 -- q=06189a2e74841588d0b8a49bbc13f97f20170e2b4d1077382c5cff4a4c12940a
  7. 58 -- q=95606d26cb985966a410b98f0bd7cb91e6aebbe36b6d0c0d555e690ed93eeff7
  8. 55 -- q=0d1c26e055e45aa89c2dd24c0d17da6c069ef429da3e03fa2af30be36a115f89
  9. Timer Started 5 secs
  10. 56 -- q=92e76406787f9ce47292a0e2e87fdce6954f71f76a4773117b907be1e74dc13e
  11. 59 -- q=b62fb7f037094f0a6a1a444a94494ea19c88674253bcefb7ad2843b30cbf8763
  12. 57 -- https://packagingpassport.com/?q=3b225ce87a3157625f9444e90dddfe74580b9ae1258b3c551c300d52012a05fd
  13. 59 -- q=b62fb7f037094f0a6a1a444a94494ea19c88674253bcefb7ad2843b30cbf8763
  14. 58 -- q=95606d26cb985966a410b98f0bd7cb91e6aebbe36b6d0c0d555e690ed93eeff7
  15. 60 -- q=7f76a8712d5d5507e9b4b2ce126051b6ee310246cc7499fa0acf2c386cfc90c1
  16. 59 -- q=b62fb7f037094f0a6a1a444a94494ea19c88674253bcefb7ad2843b30cbf8763
  17. Reader Closed
  18. 60 -- q=7f76a8712d5d5507e9b4b2ce126051b6ee310246cc7499fa0acf2c386cfc90c1
  19. Database Connection Connected
  20. Reader Closed
  21. Connection Closed
  22. Database Connection Connected
  23. Connection Closed
  24. Timer Ended
  25. Timer Ended
  26. Timer Started 5 secs
  27. Database Connection Connected
  28. Timer Started 5 secs
  29. 60 -- q=7f76a8712d5d5507e9b4b2ce126051b6ee310246cc7499fa0acf2c386cfc90c1
  30. Reader Closed
  31. Connection Closed
  32. Timer Ended
  33. Timer Started 5 secs`
mw3dktmi

mw3dktmi1#

计时器出现问题,已使用thread.sleep解决

  1. Thread.Sleep(int.Parse(Properties.Settings.Default.DbPoll)*1000);
  2. startPoll();

相关问题