我的程序是这样丛一个DDE服务上取数据,DDE的数据是随时都在变化的,
而且,每当DDE数据变化的时候会触发一个事件,
问题不是在这里,这些都是供应商提供的,没有任何问题的,下面是我说的问题。
数据变化的很快,那么触发的事件就会不停的被调用(每秒种要被调用十几次左右),
这个触发事件里面我写了一个操作(不是很复杂),
所以页面看上去象死机一样,
我应该怎么处理。开一个线程吗?有复杂操作的时候,我们通常开一个线程来执行这个复杂的操作,
但是我的操作不复杂,就是调用的次数太多了,
应该怎么处理,我用的是VS2005 C#
求救。
这个活儿,救差这里了。救命啊。

解决方案 »

  1.   

    补充一下:
    我的是Winform程序,
    每个事件里面的操作很简单,就是一个小循环对比一下数据,然后取出来,放到一个变量里面。
    大家帮忙啊。
      

  2.   

    Knight94(愚翁)
    能讲的再详细些吗?
    或者给点资料也可以。
      

  3.   

    to 能讲的再详细些吗?Sample code as follows:private ArrayList arrMessages = new ArrayList();
    private struct MessageInfo
    {
      ...
    }//Event handle
    protected void MessageReceived( ... )
    {
         MessageInfo mi = new MessageInfo( .. );
         arrMessages.Add( mi );//Add it into message queue
    }//Sub thread
    private void ThreadFun()
    {
          while( !blnStop )
          {
               if( arrMessages.Count > 0 )
               {
                     MessageInfo mi = (MessageInfo)arrMessages[0];
                     arrMessages.RemoveAt( 0 );//remove it from message queue
                     //handle message using "mi" here
               } 
               Thread.Sleep( 20 );//Sleep a while for other event being handled
          }
    }//Run sub-threand in form-load event
    private Thread thdSub;
    thdSub = new Thread( new ThreadStart( ThreadFun ) );
    thdSub.Start();