java 线程访问控件_C#多线程与跨线程访问界面控件的方法
本文实例讲述了C#多线程与跨线程访问界面控件的方法。分享给大家供大家参考。具体分析如下:
在编写WinForm访问WebService时,常会遇到因为网络延迟造成界面卡死的现象。启用新线程去访问WebService是一个可行的方法。
典型的,有下面的启动新线程示例:
private void LoadRemoteAppVersion()
{
if (FileName.Text.Trim() == "") return;
StatusLabel.Text = "正在加载";
S_Controllers_Bins.S_Controllers_BinsSoapClient service = new S_Controllers_Bins.S_Controllers_BinsSoapClient();
S_Controllers_Bins.Controllers_Bins m = service.QueryFileName(FileName.Text.Trim());
if (m != null)
{
//todo:
StatusLabel.Text = "加载成功";
}else
StatusLabel.Text = "加载失败";
}
private void BtnLoadBinInformation(object sender, EventArgs e)
{
Thread nonParameterThread = new Thread(new ThreadStart(LoadRemoteAppVersion));
nonParameterThread.Start();
}
运行程序的时候,如果要在线程里操作界面控件,可能会提示不能跨线程访问界面控件,有两种处理方法:
1.启动程序改一下:
///
/// 应用程序的主入口点。
///
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
2.使用委托
public delegate void LoadRemoteAppVersionDelegate(); //定义委托变量
private void BtnLoadBinInformation(object sender, EventArgs e)
{
LoadRemoteAppVersionDelegate func = new LoadRemoteAppVersionDelegate(LoadRemoteAppVersion);//LoadRemoteAppVersion不用修改
func.BeginInvoke(null, null);
}
希望本文所述对大家的C#程序设计有所帮助。
java 线程访问控件_C#多线程与跨线程访问界面控件的方法相关推荐
- windows查询每个线程占用的内存_C#多线程
一.基本概念 1.进程 首先打开任务管理器,查看当前运行的进程: 从任务管理器里面可以看到当前所有正在运行的进程.那么究竟什么是进程呢? 进程(Process)是Windows系统中的一个基本概念,它 ...
- 主线程是如何向子线程传递数据的?_c++ 利用thread创建线程
用进行多线程开发 小时候,老师总是教育我们上课要专心,"一心不可二用".可是CPU这个不听话的"熊孩子"偏偏却在一个芯片中加入了两个甚至多个运算核心,想要一&q ...
- java设置access-allow_Java中设置多个Access-Control-Allow-Origin跨域访问
1.如果服务端是Java开发的,添加如下设置允许跨域即可,但是这样做是允许所有域名都可以访问,不够安全. response.setHeader("Access-Control-Allow-O ...
- jmeter跨线程组传多个值_Jmeter 跨线程组传递参数 之两种方法(转)
终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为同一个线程组下的请求是同时发送的),只需要发送一次登录请求,请求B直接用登录请求的参数即可,直 ...
- 允许跨域访问_PHP设置多域名允许跨域访问
php中文网最新课程 每日17点准时技术干货分享 针对 PHP 语言设置多域名允许跨域访问 服务器变量: 服务器变量存储在 $_SERVER 数组中,在这个数组中有一个特殊的键值:HTTP_ORIGI ...
- 如何跨服务器访问html 页面,html页面如何跨域访问另一页面内容,并将部分内容呈现出来?...
html代码: 简介 我需要将接口界面的部分内容,显示在id为p4的块中,我自己这边服务器请求是跨域访问,如何操作? jquery ajax来完成,load()方法不能跨域,所以不能用:我自己的代码如 ...
- 如何跨网段访问计算机名,伪装IP进行跨网段访问
环境: 主机A:win2000 advance server(host os) 主机B:win2000 advance server(guest os) 工具:VMWare.Sniffer Pro 实 ...
- winform使用多线程时跨线程访问控件
之前写winform用多线程,在子线程里访问窗体控件需要用委托,由于委托使用不熟练,在网上找的各种方法都觉得太复杂看不懂,后来发现一种写法如下: if (pictureBox1.InvokeRequi ...
- 用java线程绘制图案_关于多线程:使用线程在java中绘制面板
我正在编写一个包含许多不同视图的程序. 其中一个是相当图形密集型(它显示一个互连的图形). 其他人只是展示小而复杂的图表. 我发现主视图的绘制时间很长(甚至只绘制当前可见的区域),并且在绘制时,界面的 ...
最新文章
- CMake 条件判断
- sql随机实现,sql GUID
- 洛谷 1541 乌龟棋
- TCP 通信过程中各步骤的状态
- P2050 [NOI2012]美食节
- 从GlassFish 3.x扩展到WebLogic 12c Server
- linux msgctl函数,msgctl()函数
- 一个优雅的后端API接口样例和代码实现方案
- 浅析gcc、arm-linux-gcc和arm-elf-gcc的关系-转
- linux中配置Java环境
- Atitit java解析yml文件 以及使用 spel ognl 读取 v4 u77.docx Atitit java解析yml文件 目录 1.1. Springboot use snak
- 2022年9月中国数据库排行榜:榜眼、探花纷纷易主,AnalyticDB蝉联榜单十强
- 西门子SIMATIC S7-1500,ET 200SP,HMI触摸屏面板产品型号
- 二叉树的遍历|前序、中序、后序、层序遍历
- source insight 4.0 的一些设置
- 给未来程序员的15个顶级职业建议
- 一生至少原谅的三个人
- 第七章 浮动(制作京东登录页面)
- 概率论 事件关系 古典概型与几何概型
- 视频监控安防平台-国标28181平台(支持国标28181转RTSP/RTMP/HLS/WEBRTC直播)
热门文章
- Actor-ES框架:Ray-Handler-消息订阅器编写
- 使用混合云的SQL Server
- 复习深入笔记01:对象/可变与不可变类型/字符编码/闭包
- vue完全编程方式与react在书写和运用上的异同
- origin如何绘制双y轴曲线_Origin用矩阵绘制多层曲面映射图
- [转]从入门到精通,Java学习路线导航
- ArcGIS实验教程——实验十一:影像拼接与提取
- C语言试题二十之利用以下的简单迭代方法求方程cos(x)-x=0的一个实根。
- C和指针之字符串编程练习1
- Android之用jadx进行反编译