• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#多线程与跨线程访问界面控件的方法

C#多线程与跨线程访问界面控件的方法

作者:寻i 字体:[增加 减小] 来源:互联网 时间:2017-05-28

寻i 通过本文主要向大家介绍了c#跨线程访问控件,c#线程访问控件,c#线程调用控件,c#多线程访问控件,c#跨线程调用控件等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了C#多线程与跨线程访问界面控件的方法。分享给大家供大家参考。具体分析如下:

在编写WinForm访问WebService时,常会遇到因为网络延迟造成界面卡死的现象。启用新线程去访问WebService是一个可行的方法。

典型的,有下面的启动新线程示例:
{ 
    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();   
}</div>

运行程序的时候,如果要在线程里操作界面控件,可能会提示不能跨线程访问界面控件,有两种处理方法:

1.启动程序改一下:
/// 应用程序的主入口点。 
/// </summary> 
[STAThread] 
static void Main() 
{ 
    Application.EnableVisualStyles();  
    System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false; 
    Application.SetCompatibleTextRenderingDefault(false); 
    Application.Run(new Form1()); 
}</div>
2.使用委托
private void BtnLoadBinInformation(object sender, EventArgs e) 
{ 
    LoadRemoteAppVersionDelegate func = new LoadRemoteAppVersionDelegate(LoadRemoteAppVersion);//<span style="font-family: Arial, Helvetica, sans-serif;">LoadRemoteAppVersion不用修改</span> 
    func.BeginInvoke(null, null); 
}</div>

希望本文所述对大家的C#程序设计有所帮助。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#子线程执行完后通知主线程的方法
  • C#向线程中传递多个参数的解决方法(两种)
  • C#往线程里传递参数的方法小结
  • C#多线程传递参数及任务用法示例
  • C#多线程与跨线程访问界面控件的方法
  • C#中线程同步对象的方法分析
  • C#实现跨线程操作控件方法
  • C#子线程更新UI控件的方法实例总结
  • C#实现线程安全的简易日志记录方法
  • c#后台线程访问前台控件并显示信息示例

相关文章

  • 2017-05-28深入IComparable与IComparer的排序实例详解
  • 2017-05-28C#子线程执行完后通知主线程的方法
  • 2017-05-28C#中Dictionary类使用实例
  • 2017-05-28C#中fixed关键字的作用总结
  • 2017-05-28C# Winform窗口之间传值的多种方法浅析
  • 2017-05-28C#中Activator.CreateInstance()方法用法分析
  • 2017-05-28C#6.0中10大新特性的应用和总结
  • 2017-05-28C#中单例的实现方法
  • 2017-05-28C#递归实现显示文件夹及所有文件并计算其大小的方法
  • 2017-05-28C#中abstract的用法详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#数据结构之循环链表的实例代码
    • Windows窗体的.Net框架绘图技术实现方法
    • C#设计模式之外观模式介绍
    • DevExpress实现自定义GridControl中按钮文字内容的方法
    • 将DLL放入到资源中,运行时自动加载的小例子
    • c#匹配整数和小数的正则表达式
    • C#模拟Http与Https请求框架类实例
    • 解析C#中委托的同步调用与异步调用(实例详解)
    • C#实现汉字转换为拼音缩写的代码
    • C#中怎么将一个List转换为只读的

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有