网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

跨线程调用控件的实现

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
在VS 2005  中考虑到线程的安全性,不允许跨线程调用控件!  为了解决这一问题 

 1. 将Control 的 CheckForIllegalCrossThreadCalls 属性设置为假, 不去捕获错误线程的调用,但这种做法是不安全的!

2.使用委托异步调用 

见代码:

 

 

using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.Windows.Forms;
namespace TabSelect
{
    class MyThread
    {
        public delegate void SetLabelText(string text);   //定义委托
        Control  control;

        Thread thread;
        ThreadStart start;
        int num2;

        构造方法,初始化线程,以及要改变属性的控件#region  构造方法,初始化线程,以及要改变属性的控件
        public MyThread(Control control,int  num)
        {
            this.control = control;
            start = new ThreadStart(BuildNum2);   //订阅线程要执行的代码
            this.num2 = num;
            thread = new Thread(start);

            thread.Start();
        }
        #endregion 

        线程中需要执行的方法  通过设置Control 属性,指示是否捕获错误线程的调用#region 线程中需要执行的方法  通过设置Control 属性,指示是否捕获错误线程的调用
        public void BuildNum()   
        {     
             Random random = new Random(num2);
             Control.CheckForIllegalCrossThreadCalls = false; [Page]

             do
             {
                 int num = random.Next(0, 10);
      &n
  • 上一篇资讯: 应用程序和窗口
  • 网学推荐

    免费论文

    原创论文

    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号