c# - 如何使用线程在 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# - Graph API - Microsoft Groups - 在创建或更新/修补期间无法启用这两个属性
- sapui5 - 如何通过 UI5 中的 XML 模板覆盖/禁用“对话框”的“escapeHandler”?
- android - Android Hilt - 如何注入 viewModelScope
- elasticsearch - 如何对 Elasticsearch 列表中的所有元素应用布尔查询?
- android - 我正在尝试从 android 移动内存中读取 pdf 文件,但它显示“加载 pdf 错误”
- ms-access - 通过从 Access 直接导出到 SharePoint 创建列表时,无法将 SharePoint 列表添加到团队选项卡
- sql - SQL 版本的 write for spark
- java - Maven 用 lombok 项目编译
- firefox - Firefox 60.9 未加载 es2015 模块(Angular 8)
- java - 如何使用 junit5 覆盖 taskExecutor.execute(new Runnable..) 中编写的代码