none
AddressOf嵌套问题 RRS feed

  • 问题

  • 有一下几个个过程

    Private Sub DOCmd(Mycmd)
       Dosomething
       System.Threading.ThreadPool.QueueUserWorkItem(New System.Threading.WaitCallback(AddressOf Mycmd), State)
    End Sub
    
    Private Sub Cmd1(byval stateas object)
       DOsomething1(state)
    End Sub
    
    Private Sub Cmd2(byval stateas object)
       DOsomething2(state)
    End Sub
    
    Private Sub Cmd3(byval stateas object)
       DOsomething3(state)
    End Sub
    
    .....
    .....

    现在想在主过程中调用DOCmd,

    比如DoCmd(Cmd1),DoCmd(Cmd2),DOCmd(Cmd3)等等,现在的DoCmd写法(没有参数签名)是错误的,并且里面AddressOf Mycmd也不对

    但不知道Docmd该怎么写?

    2012年9月27日 9:05

答案

全部回复

  • 定义一个delegate,形式和你的函数一致,
    Mycmd 是那个delegate类型

    http://feiyun0112.cnblogs.com/

    2012年9月28日 1:16
    版主
  • Delegate Sub DelMySub(byval state as object)
    
    Private Sub DOCmd(byval Mycmd as DelMySub)
       Dosomething
       System.Threading.ThreadPool.QueueUserWorkItem(New System.Threading.WaitCallback(AddressOf Mycmd), State)
    End Sub
    
    Private Sub Cmd1(byval state as object)
       DOsomething1(state)
    End Sub
    
    Private Sub Cmd2(byval state as object)
       DOsomething2(state)
    End Sub
    
    Private Sub Cmd3(byval state as object)
       DOsomething3(state)
    End Sub
    
    .....
    .....

    是这样吗?但是在New System.Threading.WaitCallback(AddressOf Mycmd) 出错,报 “AddressOf”操作数必须是某个方法的名称(不带圆括号)。 

    有点晕,呵呵

    2012年9月28日 2:53
  • Private Sub DOCmd(ByVal Mycmd As WaitCallback)

            System.Threading.ThreadPool.QueueUserWorkItem(Mycmd, state)
        End Sub


    http://feiyun0112.cnblogs.com/

    2012年9月28日 3:28
    版主
  • 可以了,万分感谢~

    • 已标记为答案 picat 2012年9月28日 3:48
    2012年9月28日 3:48