C#多线程编程实例 线程与窗体交互

本文探讨了在C#中为何使用线程以避免窗体应用程序假死,解释了线程与窗体交互的重要性。通过实例说明,当主线程执行耗时任务时,未使用线程会导致无法响应用户操作。提供源码下载链接以供实践。

为什么要使用线程?

什么要使用线程与窗体交互?

在使用一个窗体应用程序软件的时候,你可能经常遇到过这样一种情况,就是点击一个按钮或者菜单执行一个任务,然后窗口就假死在那里,没有响应了,等执行完成以后又好了;

这是什么原因呢?

就是因为没有使用线程,直接在程序软件的主线程中执行任务;当主线程在执行比较耗CPU的任务时,自己就没有空闲来响应用户的其它操作了。

代码:

 

    public partial class Form1 : Form
    {
        //声明线程数组
        Thread[] workThreads = new Thread[10];

        public Form1()
        {
            InitializeComponent();
        }

        //此委托允许异步的调用为Listbox添加Item
        delegate void AddItemCallback(string text);

        //这种方法演示如何在线程安全的模式下调用Windows窗体上的控件。
        private void AddItem(string text)
        {
            if (this.listBox1.InvokeRequired)
            {
                AddItemCallback d = new AddItemCallback(AddItem);
                this.Invoke(d, new object[] { text });
            }
            else
        
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值