• C# 委托 / 跨线程访问UI / 线程间操作无效: 从不是创建控件“Form1”的线程访问它


    C# 委托 / 跨线程访问UI /  线程间操作无效: 从不是创建控件“Form1”的线程访问它  

    网上的代码都比较复杂,还是这个简单

    见代码,

    简易解决办法:

    主窗体代码

    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.Threading;
    using System.Windows.Forms;
    
    namespace WindowsFormsApp1
    {
    	public partial class Form1 : Form
    	{
    		public Form1()
    		{
    			InitializeComponent();
    		}
    
    		private void button1_Click(object sender, EventArgs e)
    		{
    			Thread func = new Thread(lib.test_func);
    			func.Start(this);
    		}
    	}
    }
    

      

    线程代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace WindowsFormsApp1
    {
    	public static class lib
    	{
    		public static void test_func(object frm)
    		{
    			var frm2 = frm as Form1;
    			while (true)
    			{
    				System.Threading.Thread.Sleep(100);
    				frm2.Invoke(new Action(() => {
    					frm2.Text = DateTime.Now.ToString();
    				}));
    
    			}
    		}
    
    	}
    }
    

      

  • 相关阅读:
    Python_命名空间和作用域_25
    Python_函数_复习_习题_24
    Python_每日习题_0001_数字组合
    Python_试题_23
    Python_初识函数和返回值_22
    linux-shell-引用-命令替换-命令退出状态-逻辑操作符
    linux-shell-变量参数
    Python-复习-文件操作-21
    Python-注册登陆-20
    linux-vim
  • 原文地址:https://www.cnblogs.com/fxyc87/p/6546971.html
Copyright © 2020-2023  润新知