打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
从不是创建控件的线程访问控件(1)(原创)
可以通过将 CheckForIllegalCrossThreadCalls 属性的值设置为 false 来禁用此异常。这会使控件以与在 Visual Studio 2003 下相同的方式运行。详见下面代码示例:

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 WindowsFormsApplication2
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
        private void Form2_Load(object sender, EventArgs e)
        {
            Form2.CheckForIllegalCrossThreadCalls = false;//不运行此句代码,将引发异常:线程间操作无效: 从不是创建控件“progressBar1”的线程访问它。
        }
        private void button1_Click(object sender, EventArgs e)
        {
            progressBar1.Value = 0;
            ThreadStart ts = new ThreadStart(showProgress);
            Thread thread = new Thread(ts);
            thread.Start();
        }
        private void showProgress()
        {
            for (int i = 0; i < progressBar1.Maximum; i++)
            {
                progressBar1.Value += 1;
                Thread.Sleep(100);
            }
        }
    }
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C#中跨线程访问控件问题解决方案
C#跨线程操作控件的线程安全方法
ProgressBar——Marquee .
对 Windows 窗体控件进行线程安全调用 - 夜淡茶清.shenfx - 博客园
跨线程调用控件之MethodInvoker - C#天空 - 博客园
转:C#中跨线程访问控件问题解决方案
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服