兄弟,这是业务抽象模型,假设有应用需要1000个这样的处理,需要写1000个不同的线程处理函数(禁用药物数量不同,其他都一样),如果能实现这样的处理(等待线程完成,且不卡UI),最多几个函数就行,你说那个合算?之所以提出这个需求,是因为在VC z中这样的需求能实现,但C#不支持消息传递(C#只能传递到窗口,不能传递到窗口的按钮事件中)

解决方案 »

  1.   

    兄弟,这是业务抽象模型,假设有应用需要1000个这样的处理,需要写1000个不同的线程处理函数(仅业务数量不同,其他都一样),如果能实现这样的处理(等待线程完成,且不卡UI),最多几个函数就行,你说那个合算?之所以提出这个需求,是因为在VC 中这样的需求能实现,但C#不支持消息传递(C#只能传递到窗口,不能传递到窗口的按钮事件中)
    如果能实现VC DLL中发出一个消息WM_USER+999,在c#的按钮事件中能捕捉到这个消息,请告知,问题解决!!!
    或者能实现在按钮P(C#)中发出一个发出消息0x0400+999,在按钮M的处理函数yy中,能收到这个消息(不是窗体收到),也行
      

  2.   

    只有顺序执行流程思路的人,只能写点简单的“函数计算”程序。因为单线程顺序计算程序才是这样的。如果涉及到真实的(哪怕仅仅)涉及到另个独立运行的对象的程序,你要是死抱着函数式计算的顺序编程思路,都无法设计好程序。如果你要设计一个比较流畅的用户界面程序,就是事件驱动的。(这里的事件是广义的概念,不是单指.net的事件)你习惯于根据事件来驱动你的程序,才能设计出应用程序来。
      

  3.   

    UI界面只负责生成业务类的实体和把实体塞到MQ里的工作,具体业务的实行由MQ来做
      

  4.   

    UI这边根本就不用多线程,而且MQ的现成的产品很多,微软的MSMQ或者IBM的MQ都不错