c# winform 工作线程访问修改界面线程

原创 2007年09月13日 14:57:00

vs2005 中,工作线程 操作 界面的线程的时候,一般会 报个错误,叫 么子 工作线程不能够修改主线程什么的。解决方法参考如下:

 #region 重新加载树图
        /// <summary>
        /// 重新加载树图
        /// </summary>
        private void RedrawTree()
        {
            if (treeView1.InvokeRequired)
            {
                treeView1.Invoke(new MethodInvoker(RedrawTree));
                return;
            }
             //ToDo 对界面控件的修改

            }
        }

还有种:

Invoke(new MethodInvoker(BeginLoad), null);//适合没有参数的函数

还有种,是用事件

  #region 设置节点的数据
        delegate void SetNodeValuesDelegate(TreeNode node, TreeItem item);
        /// <summary>
        /// 设置节点的数据
        /// </summary>
        /// <param name="node"></param>
        /// <param name="item"></param>
        private void SetNodeValues(TreeNode node, TreeItem item)
        {
            if (treeView1.InvokeRequired)
            {
                treeView1.Invoke(new SetNodeValuesDelegate(SetNodeValues), node, item);
                return;
            }
// ToDo 对界面控件的修改         

        }

一些原理文章,参考:

http://tag.csdn.net/tag/invokerequired/1.html

http://blog.csdn.net/Depraved_Survival/archive/2007/09/03/1770950.aspx

http://www.yesky.com/20030225/1653758.shtml

http://www.x2blog.cn/jinhong618/?tid=22389

 

以下是wpf中遇到的问题:

首先,参考文章:http://www.cnblogs.com/zhouyinhui/archive/2007/09/16/894719.html

C#Winform中多线程访问控件问题,可帮助解决“线程间操作无效: 从不是创建控件“FrmUpdate”的线程访问它。”异常

我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题。然而我们并不能用传统方法来做这个问题,下面我将详细的介绍。    首先来看传统方法:        ...
  • ychchhy
  • ychchhy
  • 2011年11月16日 11:31
  • 2641

演练:从用户界面线程中移除工作

演练:从用户界面线程中移除工作 Visual Studio 2010 其他版本 本文档演示如何使用并发运行时将 Micro...
  • zzzkiti
  • zzzkiti
  • 2017年05月06日 17:30
  • 151

MFC 工作线程和界面线程

MFC多线程的创建 1.MFC多线程简介 MFC对多线程进行了一层简单的封装,在Visual C++中每个线程都是从CWinThread类继承而来的。每一个应用程序的执行都有一个主线程,这...

MFC多线程的创建,包括工作线程和用户界面线程

MFC多线程的创建 1.MFC多线程简介 MFC对多线程进行了一层简单的封装,在Visual C++中每个线程都是从CWinThread类继承而来的。每一个应用程序的执行都有一个主线程,这个主线程...
  • cbNotes
  • cbNotes
  • 2013年01月04日 16:41
  • 67340

VS2010/MFC入门编程十七(多线程的创建,包括工作线程和用户界面线程)

MFC多线程的创建 1.MFC多线程简介 MFC对多线程进行了一层简单的封装,在Visual C++中每个线程都是从CWinThread类继承而来的。每一个应用程序的执行都有一个主线程...
  • yu__jia
  • yu__jia
  • 2014年07月29日 09:01
  • 2956

MFC多线程的创建,包括工作线程和用户界面线程

 MFC多线程的创建 1.MFC多线程简介 MFC对多线程进行了一层简单的封装,在Visual C++中每个线程都是从CWinThread类继承而来的。每一个应用程序的执行都有一个主线程,这...

[MFC]界面线程和工作线程

1.前言MFC提供了2中线程的实现方式,一种是界面线程,可以处理来自系统的消息,比如窗口的点击事件;一种是工作线程,用于处理繁琐的计算或者长时间的任务,例如后台打印,计算等。2.界面线程界限线程的创建...

工作线程和界面线程之间的通讯

首先声明, 这里的工作线程与UI线程是相对的,即没有任何窗口的. 如果需要与主线程或其它辅助线程通讯,有几种方法如事件,消息,信号等,也可以是以上几种方法的综合运用.下面就列出以下3种通讯方法的代码框...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c# winform 工作线程访问修改界面线程
举报原因:
原因补充:

(最多只允许输入30个字)