如果我删除MsgBox代码无法运行,那怎么可能以及如何修复它?

时间:2010-11-02 17:28:26

标签: wpf vb.net winforms

我有一个使用WPF互操作性的代码,其中我有WPF项目,在Windows窗体中作为用户控件添加。我使用WPF进行3D视图,其中我动态添加一个球体并且它工作正常,我所做的只是将x,y和半径从表单发送到WPF并绘制球体。 现在这里是问题我做了一个循环,读取coords列表并在WPF控件中绘制它,如果我添加一个空白的MsgBox但是如果我删除了MsgBox它只显示列表中的最后一个球体,它是完美的,例如

   For Each obj As Sphere in LstSpheres

        MsgBox("") 'If I remove this the code doesn't work
        CreateSphere(obj.x, obj.y, obj.radius, Brushes.Red) 'This Sub adds the Sphere in WPF Control

    Next

这怎么可能,以及如何解决?

更新:

CreateSphere

        Dim S As New Sphere ' a ready made object I took and it doesn't use threaing
        S.Radius = Radius
        S.X = x
        S.Y = y
        S.BrushColor = Color
        My3DViewport3D.Children.Add(S)

2 个答案:

答案 0 :(得分:1)

我很好奇如果你这样做会发生什么。

Dim temp As String = ""

For Each obj As Sphere in LstSpheres
    CreateSphere(obj.x, obj.y, obj.radius, Brushes.Red)
    temp &= "[" & My3DViewport3D.Children.Count & "]"
Next

MsgBox(temp)

答案 1 :(得分:0)

我的第一个猜测是线程问题?也许停止消息框代码的行为可以让最后一个CreateSphere有足够的时间来完成?