youyiyang 2021-07-29 13:52 采纳率: 74.2%
浏览 42
已结题

这段代码为什么不能运行?子线程访问UI主线程的控件不能执行



```c#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace invoke1
{
    public delegate void MyInvoke(string str);
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        

        private void button9_Click(object sender, EventArgs e)
        {
            //_myInvoke = new MyInvoke(SetText);
            //CheckForIllegalCrossThreadCalls = false;
            Thread t = new Thread(new ThreadStart(fun));
            t.Start();
        }

        private void fun()
        {
            //_myInvoke("dddd");
            SetText("ddd");
        }
        private void SetText(string s)
        {
            if (textBox6.InvokeRequired)
            {
                MyInvoke _myInvoke = new MyInvoke(SetText);
                this.Invoke(_myInvoke, new object[] { s });
            }
            else
            {
                this.textBox6.Text = s;
            }
        }
    }


}

```

  • 写回答

3条回答 默认 最新

  • Aganstrong 2021-07-29 16:08
    关注

    线程内委托执行textBox的修改比较好

    private delegate void dvg(string s);
    
    private void ceshiThread(Object obj)
    {
        textBox1.Invoke(new dvg((s) => {
                textBox1.Text = s;
        }), new object[] { "你需要赋值的字符串" });
    }
    
    private void button1_Click(object sender, EventArgs e)
    {
        Thread th = new Thread(ceshiThread);
        th.IsBackground = true;
        th.Start();
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月7日
  • 已采纳回答 7月30日
  • 创建了问题 7月29日

悬赏问题

  • ¥15 模电中二极管,三极管和电容的应用
  • ¥15 关于模型导入UNITY的.FBX: Check external application preferences.警告。
  • ¥15 气象网格数据与卫星轨道数据如何匹配
  • ¥100 java ee ssm项目 悬赏,感兴趣直接联系我
  • ¥15 微软账户问题不小心注销了好像
  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络