现在需要做一个监控,采用多线程,一个线程负责接收监听到的数据,另一个线程用于展示数据,还有一个筛选功能,对展示的数据进行搜索,搜索结果的同时如果有和查询条件一致的记录,则追加到搜索记录中,我的个天,一团乱麻,麻烦思路清晰的帮忙给锊一下,现在都不知道怎么来做了,谢谢。

解决方案 »

  1.   

    换一下视角, 毕竟线程是软件构造一般是一些后台任务, 有任务就得有任务调度管理.任务管理器负责启动, 监视, 终止各个任务
    任务到ui的反馈, 通过任务管理器完成,
    任务管理器拿到UI线程中的一个 control 对象就够了(用于 marshal 调用)
      

  2.   

    接收线程,关联两个Event(AutoResetEvent,ManualResetEvent)都可以,看楼主需求.
    一个Event用于在接收程数据接收完毕之后通知显示线程,
    另一个Event用于等待显示线程数据处理完毕之后通知接收线程继续接收数据.当接收线程数据接收完毕,第一个Event执行Set,发起通知,另一个Event执行Wait,在显示线程,在一个While里循环等待接收线程的第一个Event,一旦Wait返回True,表明数据准备完毕,
    显示线程处理完后对另一个Event执行Set,通知接收线程继续接收数据.
    关键还是理解!
      

  3.   

    winform程序吧,展示就做到主窗体中处理。主窗体的线程负责启动其他的线程,如侦听数据的线程、筛选数据的线程等
      

  4.   

    接收线程,关联两个Event(AutoResetEvent,ManualResetEvent)都可以,看楼主需求.
    一个Event用于在接收程数据接收完毕之后通知显示线程,
    另一个Event用于等待显示线程数据处理完毕之后通知接收线程继续接收数据.当接收线程数据接收完毕,第一个Event执行Set,发起通知,另一个Event执行Wait,在显示线程,在一个While里循环等待接收线程的第一个Event,一旦Wait返回True,表明数据准备完毕,
    显示线程处理完后对另一个Event执行Set,通知接收线程继续接收数据.
    关键还是理解!