第一步: delegate void FormHandler(int[] param);
第二部:
private void flueErrorProcess_errorFlueProcessEvent(int[] itemData)
{
if(!this.InvokeRequired)
{
//这里执行一些操作。。
}
else
{
FormHandler fHandler = new FormHandler(this.flueErrorProcess_errorFlueProcessEvent); //创建一个新instance指向FormShow.
this.Invoke(fHandler, new object[] {itemData}); //启动delegate
}} 请问这样的用法有什么好处啊 ...........  到底什么时候该触发...

解决方案 »

  1.   

    Invoke(fHandler, new object[] {itemData}); //启动delegate这句已经触发了
      

  2.   

    WinForm不支持跨线程操作控件。
    if(!this.InvokeRequired) 说明在线程内,可以直接操作
    否则需要用下面的调用切换线程
    this.Invoke(fHandler, new object[] {itemData}); 
      

  3.   

    这是委托不是事件...一点也不另类,不这么用才是错的...因为WinForm窗体是单元线程,不允许跨线程操作...
      

  4.   

    多线程调试不能打断点,加调试代码输出到“输出”窗口或写到log里再查看...