фон:Приложения останавливая при использовании MethodInvoker в пользовательском таймере
Мне нужна высокий таймер разрешения для встроенного системного решения, поэтому я решил использовать MicroTimer из The Code Project ...
Кстати, я «Для этого была разработана приложение Windows Forms, чтобы проверить его эффективность в таких приложениях и избежать « перекрестная работа ... ». Мне нужно использовать методы вызова, BackgroundWorker и т. д. и решите использовать этот код:
private void btnMicorTimer_Click(object sender, EventArgs e)
{
// Instantiate new MicroTimer
MicroLibrary.MicroTimer microTimer = new MicroLibrary.MicroTimer();
// Add event handler
microTimer.MicroTimerElapsed +=
new MicroLibrary.MicroTimer.MicroTimerElapsedEventHandler(OnTimedEvent);
// Call micro timer every 1000µs (1ms)
microTimer.Interval = 1000;
// Can choose to ignore event if late by Xµs (by default will try to catch up)
// microTimer.IgnoreEventIfLateBy = 500;
microTimer.Enabled = true; // Start timer
// Do something whilst events are happening. For demo sleep, 2000 ms (2 sec).
System.Threading.Thread.Sleep(2000);
microTimer.Enabled = false; // Stop timer
}
private void OnTimedEvent(object sender,
MicroLibrary.MicroTimerEventArgs timerEventArgs)
{
string response = string.Format(
"Count = {0:#,0} Timer = {1:#,0} µs | " +
"LateBy = {2:#,0} µs | ExecutionTime = {3:#,0} µs",
timerEventArgs.TimerCount, timerEventArgs.ElapsedMicroseconds,
timerEventArgs.TimerLateBy, timerEventArgs.CallbackFunctionExecutionTime);
// Do something small that takes significantly less time than Interval
if (listBox1.InvokeRequired)
{
Invoke(new MethodInvoker(
delegate
{
listBox1.Items.Add(response);
}));
}
else
listBox1.Items.Add(response);
}
Проблема:
Как было сказано ранее, применение немедленно остановить после того, как кнопка нажата! Кратко это то, что происходит после того, как btnMicorTimer_Click :(Это выглядеть проект в ловушке в бесконечном цикле
Что вы имеете в виду, останавливая вы сделали добавить сон в потоке пользовательского интерфейса ... –
Я желательно это: HTTP: //postimage.org/image/f0lnt11bp/ Но правила сайта не позволяют мне добавить эту фотографию в мой пост! BTW: Приложение дает огромные ресурсы и не отвечает ... –