如何在使用waithandle处理之前等待用户完成数据输入

时间:2012-11-28 19:41:25

标签: c# waithandle

我有一个允许用户输入数据的UI,每当用户输入数据时,我就会发出一个事件,说明在这个位置更改了数据并将其放入队列中。我有一个后台线程,通过 waitany waithandle 来监听事件。每次数据更改时,我都会强制对队列中的所有项执行操作。它工作正常。问题是当用户输入两个值时,会有两个更改事件。队列中有两个元素,但第一个事件先获取并立即强制执行某个操作,此时队列中只有一个项目。下一个事件到来,它将处理队列中的下一个项目。 99%的时间进程处理来自队列的一个事件,因为人类数据输入的缓慢是事件处理的坚定性。只是想知道是否有办法,我可以在处理事件周围放一些逻辑等待一点然后处理?

等待句部分

switch(WaitHandle.WaitAny(myhandles))
{
   case event.ProcessEvent:
        ProcessEvents();
        break;
   ...
}

在流程事件中

private void ProcessEvents()
{
  while(eventQueue.Count > 0)
  {
     //dequeue event
     //process the given event
  }
}

0 个答案:

没有答案