freedom_wings 2016-04-12 13:52 采纳率: 21.1%
浏览 1386

c#,winform跨线程更改ui组件,出错,求大神帮帮忙

以下是截图:
图片说明

源码:

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

namespace WindowsFormsApplication1
{


    public partial class Form1 : Form
    {
        private delegate void d(int a, int b);
        d dt;
        public Form1()
        {
            InitializeComponent();

        }

        private void button1_Click(object sender, EventArgs e)
        {
            int a = int.Parse(textBox1.Text);
            int b =int.Parse(textBox2.Text);
            Thread t = new Thread(()=>ThreadTest(a,b));
            t.Start();

            textBox1.Text = "a";
        }

        private void Result(int a,int b)
        {
            label1.Visible = true;
            label1.Text = Convert.ToString(a, b);
        }

        private void ThreadTest(int a,int b)
        {
            if (label1.InvokeRequired)
            {
                while (!label1.IsHandleCreated)
                {
                    if (label1.Disposing || label1.IsDisposed)
                        return;

                }
                dt = new d(Result);
                label1.Invoke(dt, new object[] { a, b });
            }
            else label1.Text = Convert.ToString(a + b);

        }
    }


}

运行的时候
图片说明

按了button后:
图片说明
一直这样,有时还会在int a=Convert.ToInt32(textBox1.Text)报字符串转换为datetime应先分析什么什么的,我这里根本就没转为字符串格式。
求大神指点指点

  • 写回答

2条回答 默认 最新

  • threenewbee 2016-04-12 15:36
    关注

    贴出报错信息,按照你的图看,textBox1.Text如果是a的话,那么肯定不能转换为Int32
    但是你的代码根本没有什么DateTime,怎么可能报那样的错。

    评论

报告相同问题?

悬赏问题

  • ¥15 gradio的web端页面格式不对的问题
  • ¥15 求大家看看Nonce如何配置
  • ¥15 Matlab怎么求解含参的二重积分?
  • ¥15 苹果手机突然连不上wifi了?
  • ¥15 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
  • ¥40 串口调试助手打开串口后,keil5的代码就停止了