首页 > 解决方案 > 如何使用线程在 VS 中移动 Powerpack Ovalshape

问题描述

我正在尝试为一个有趣的项目制作一个类似于亚原子粒子的模型。我知道 C# 并不是这种工作的最佳编码语言,但是由于我对编码还很陌生,直到现在 C# 和 Java,我才决定只尝试 C#。

目前我正在尝试做的是让代表粒子的椭圆形被动地向带相反电荷的粒子移动。为了让它一直在后台运行,我决定使用线程,但是当我运行我的简单测试以证明用线程移动椭圆形的概念时,它根本没有移动,我不明白为什么。

我通常使用设置线程

Thread thrFOA = new Thread(new ThreadStart(ForceOfAttraction));

然后做了我的测试后台功能:

        public  void ForceOfAttraction()
    {
        ovalShape1.SetBounds(ovalShape1.Location.X + 1, ovalShape1.Location.Y, ovalShape1.Width, ovalShape1.Height);
        ovalShape1.Refresh();
    }

所以我认为这应该只是让椭圆在屏幕上缓慢移动,一次移动一个像素,但是根本没有移动,我不明白为什么不移动。我也尝试过this.Refresh();,而不是ovalShape1.Refresh();在表单类中,但结果相同。

感谢您的时间和帮助,谢谢!

标签: c#multithreading

解决方案


推荐阅读