西西软件园多重安全检测下载网站、值得信赖的软件下载站!
软件
软件
文章
搜索

首页编程开发C#.NET → C#中的跨线程调用

C#中的跨线程调用

相关软件相关文章发表评论 来源:本站整理时间:2010/11/23 11:19:42字体大小:A-A+

作者:佚名点击:581次评论:0次标签: 跨线程

  • 类型:塔防游戏大小:34.5M语言:中文 评分:10.0
  • 标签:
立即下载
在开发具有线程的应用程序时,有时会通过子线程实现Windows窗体,以及控件的操作,比如:在对文件进行复制时,为了使用户可以更好的观察到文件的复制情况,可以在指定的Windows窗体上显示一个进度条,为了避免文件复制与进度条的同时操作所带来的机器假死状态,可以用子线程来完成文件复制与进度条跟踪操作,下面以简单的例子在子线程中操作窗体中的TextBox控件。代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.Threading;//添加线程的命名空间

namespace ppp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

Thread t; //定义线程变量

private void button1_Click(object sender, EventArgs e)
{
t = new Thread(new ThreadStart(Threadp)); //实例化线程
t.Start();//启动线程
}
自定义方法Threadp,主要用于线程的调用。代码如下:
public void Threadp()
{
textBox1.Text = "实现在子线程中操作主线程中的控件";
t.Abort();//关闭线程
}
}

图1 在子线程中操作主线程中控件的错误提示信息:



以上是通过一个子线程来操作主线程中的控件,但是,这样作会出现一个问题(如图1所示),就是TextBox控件是在主线程中创建的,在子线程中并没有对其进行创建,也就是从不是创建控件的线程访问它。那么,如何解决跨线程调用Windows窗体控件呢?可以用线程委托实现跨线程调用Windows窗体控件。下面将上一个例子进行一下改动。代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.Threading;//添加线程的命名空间

namespace ppp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

Thread t; //定义线程变量

private void button1_Click(object sender, EventArgs e)
{
t = new Thread(new ThreadStart(Threadp)); //实例化线程
t.Start();//启动线程
}

private delegate void setText();//定义一个线程委托
自定义方法Threadp,主要用于线程的调用。代码如下:
public void Threadp()
{
setText d = new setText(Threading); //实例化一个委托
this.Invoke(d); //在拥用此控件的基础窗体句柄的线程上执行指定的委托
}
自定义方法Threading,主要作于委托的调用。代码如下:
public void Threading()
{
textBox1.Text = "实现在子线程中操作主线程中的控件";
t.Abort();//关闭线程
}
}
}
    魔兽塔防地图
    (300)魔兽塔防地图
    塔防,即炮塔防御的简称,也称。塔防受众很广,游戏模式简单而可玩性强,是智力和策略的比拼。当塔防与这两种游戏类型融合在一起的话,游戏就会变得更好玩,同时也很休闲。小编在这里为大家搜集整理了许多魔兽争霸塔防地图,欢迎感兴趣的玩家们前来下载。...更多>>
    塔防游戏
    (70)塔防游戏
    西西游戏网提供最新最热门的塔防游戏,塔防游戏顾名思义就是炮塔防守游戏,玩家需要建造炮塔轰炸一些进攻的敌人保卫家园,塔防游戏操作都很简单,就是在最合理的位置放置炮塔,无需其他的操作,可能有的塔防游戏会添加一些技能,但是也没什么难度的哦.热门游戏保卫萝卜兽人必须死炮塔防御塔防三国志等等,太多了。...更多>>

    相关评论

    阅读本文后您有什么感想? 已有人给出评价!

    • 8 喜欢喜欢
    • 3 顶
    • 1 难过难过
    • 5 囧
    • 3 围观围观
    • 2 无聊无聊

    热门评论

    最新评论

    发表评论 查看所有评论(0)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    字数: 0/500 (您的评论需要经过审核才能显示)