在MFC中我建了一个CList<info,info&>mylist;链表,可以当成一个普通链表。这个链表中的数据会不定时更新,怎么才能将更新的数据,通知正在使用它的函数。在使用链表的函数中我是依次遍历链表中的每一个数据,同时进行数据处理。档链表有心数据后,这个函数就不清楚(已添加有新数据)。这里怎么通知该函数啊、、、

解决方案 »

  1.   

    (1)定义一个标志变量,有变化时赋值TRUE;
    (2)加一个定时器,定时调用处理函数;
    (3)处理函数里面判断如果标记变量为TRUE时就处理,否则不处理退出。
      

  2.   

    (1)定义一个标志变量,有变化时赋值TRUE;
     可能还需要,把 更新的数据代码 设为 临界区 。
      

  3.   


    别见笑,这个标志变量,应该定义在哪里呢。在链表里面吗?你的意思是不是在链表的数据中添加一个标志位,每当数据被处理函数处理后,这个标志就被标为false,新添加的数据这个标志位就是true?
    对于处理函数再设置一个timer定时器。???
      

  4.   

    这里是一个TCP的网络程序,每当收到一个消息后就会将该消息放入链表中。链表也就在随时变化。同时在其他地方需要用到这链表的中数据,这里就出现了链表在变化,但是使用的它的函数却不知道。
      

  5.   

    简单的方法是设置一个全局的BOOL型变量,发生变化时改一下这个BOOL变量的值。
    不过这种方法没有达到通知的目的,你要应用这个链表时自己检查和维护这个BOOL变量。