2010-03-19 55 views
0

我有这样的脚本:“算术运算导致溢出”在Me.Invoke与多线程

Private Sub WebDL_AmountDownloadedChanged(ByVal iNewProgress As Long) Handles WebDL.AmountDownloadedChanged 
    'On Error Resume Next 
    If downloading Then 
     Dim wbchanged As New WDL_AmountDownloadedChanged(AddressOf WebDLAmountChanged) 
     Me.Invoke(wbchanged, New Object() {CLng(iNewProgress)}) 
    End If 
End Sub 

在执行过程中,子接收到iNewProgress该值:,导致溢出:

系统.OverflowException未处理 Message =“算术运算导致溢出。”在System.Windows.Forms.Control.MarshaledInvoke(控制调用方,委托方法,对象[]参数,布尔同步) 来源= (Delegate method,Object [] args)

回答

1

您没有为您发布代码WebDLAmountChanged方法。但是,错误消息说它的论据应该被声明为“长”但不是。修复:

Private Sub WebDLAmountChanged(ByVal progress As Long) 
    ' etc... 
End Sub 
相关问题