当前位置: 首页 > news >正文

C#thread线程传参数更新UI的文本框

C#线程的用法有几个不同的地方:

1、怎么启动线程?

2、是不是需要传入参数?

3、是不是要调用到UI中的控件,并对其进行更新?

关于启动线程,这里一个示例是在form中启动:

定义一个private:static Form1^ instance;变量
并在构造函数中赋值为this:
Form1(void)
{instance = this;InitializeComponent();
}

假如有参数传入线程,使用下面这样的方法:

private: System::Void BTN_Config_Click(System::Object^ sender, System::EventArgs^ e)
{
。。。Thread^ formThread = gcnew Thread(gcnew System::Threading::ParameterizedThreadStart(instance, &Form1::myUARTThread));formThread->Start(20);
。。。
}

如果传入的参数需要更新到窗体的控件中,则需要使用delegate的方法,如下:

	delegate void myUARTThreadDelegate(Object^ obj);private: void myUARTThread(Object^ obj){ISynchronizeInvoke^ i = this;if (i->InvokeRequired){myUARTThreadDelegate^ tempDelegate = 	gcnew myUARTThreadDelegate(this, &Form1::myUARTThread);cli::array<System::Object^>^ args = gcnew cli::array<System::Object^>(1);args[0] = obj;i->BeginInvoke(tempDelegate, args);return;}this->textBox_Receiver->Text = obj->ToString();}

最后需要注意的是myUARTThreadDelegate(Object^ obj);参数用的时Object^,不能直接用count等。

http://www.lryc.cn/news/350505.html

相关文章:

  • 基于Vue和uni-app的增强型单选ccRadioView组件开发
  • 信息系统项目管理师0602:项目立项管理 — 历年考题(详细分析与讲解)
  • vue2 中使用audio播放音频
  • 一键追爆款,GPT一键改文‌‍‬⁣⁡​⁤⁢​⁢⁡⁣‬‍‌​​‬ ​‍⁤‬ ‬⁡⁡⁡‍‌‬⁡⁡⁢‬⁤⁢⁢⁤​‍‌​​‬ ​⁣‌,绘唐3,绘唐工具
  • 在C#中编写递归函数时,为了避免无限递归
  • css层叠样式表——基础css面试题
  • 数据库-索引结构(B-Tree,B+Tree,Hash,二叉树)
  • Microsoft Azure AI语音服务
  • 【Linux】常用指令、热键与权限管理
  • 深度学习知识点全面总结
  • 【编写控制手机压测的脚本】
  • 计算机网络-路由策略与路由控制一
  • 在线3D展示软件三维展示软件推荐哪家?
  • VS Code中PlatformIO IDE的安装并开发Arduino
  • Java入门——异常
  • 智慧园区:视频系统建设的核心要素与实践路径
  • 基于ChatGLM+Langchain离线搭建本地知识库(免费)
  • MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】
  • SCSS详解
  • Vue 问题集
  • Elasticsearch 8.1官网文档梳理 -综述
  • 当自身需要使用的 gcc版本 和Linux 默认版本 存在大版本差异时怎样处理
  • 深度学习之卷积神经网络理论基础
  • 控制台的高度可调有哪些重要意义解析
  • 智能招聘?远在天边,近在眼前
  • 文字游侠AI丨简直是写作神器,头条爆文一键生成稳定赚米!附渠道和详细教程(只需四步)!
  • 【ES6】简单剖析一下展开运算符 “ ... “
  • java StringUtils类常用方法
  • 科锐国际(计算机类),汤臣倍健,中建三局,宁德时代,途游游戏,得物,蓝禾,顺丰,康冠科技24春招内推
  • 一些常见开发框架相关题目,RESTful是什么,Electron是什么,Express, Koa