wildcard98 - Di 22.01.08 17:20
Titel: Timer Probleme - Timer wird nicht ausgeführt
Hallo,
ich benutze einen Timer um in regelmässigen Abständen auf der seriellen Schnittstelle zu schauen, ob ein Byte empfangbar ist (die kommunikation ist aber nicht mein Problem, die funktioniert) :
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| private void answer_poll_timer_Tick(object sender, EventArgs e) { rm_return test; test = com_handle.get_answer(ref last_answer, ref last_answer_size);
if (test != rm_return.ANSWER_TIMEOUT) { if (test == rm_return.OK) { comlog_textBox.AppendText("Last Answer Size:" + last_answer_size.ToString() + "\r\n"); answer_poll_timer.Enabled = false; } else { comlog_textBox.AppendText(test.ToString() + "\r\n"); answer_poll_timer.Enabled = false; return; } } else { comlog_textBox.AppendText("Timeout\r\n"); } } |
Wenn ich nun mit einem Button warten möchte bis eine Antwort empfangen wurde, wartet sich die Funktion tot:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| private void button3_Click(object sender, EventArgs e) { rm_return test; if (com_handle.cport_open) {
test = com_handle.send_cmd_paras(1, new byte[3] { (byte)'c', (byte)'b', (byte)'c' }); if (test != rm_return.OK) { comlog_textBox.AppendText(test.ToString() + "\r\n"); return; } answer_poll_timer.Enabled = true; do { } while(answer_poll_timer.Enabled); offset_kurz_textBox.Text = BitConverter.ToInt16(last_answer, 0).ToString(); } } |
Leider wird der Timer bei einer Betätigung des Buttons (laut Debugger) gar nicht gestartet, und daher wird "while(answer_poll_timer.Enabled)" nicht verlassen.
Auch gibt der TimerTick nichts vonsich (weder eine Timeout,Error noch OK Information), es scheint als würde der Timer garnicht gestartet werden...
Vielen Dank schonmal für eure Hilfe!