CSDN论坛 > .NET技术 > C#

异常:“在某个线程上创建的控件不能成为在另一个线程上创建的控件的父级。” [问题点数:0分]

Bbs1
本版专家分:16
结帖率 100%
CSDN今日推荐
Bbs2
本版专家分:127
Bbs13
本版专家分:526163
Blank
名人 年度总版至少三次排名前十即授予名人勋章
Blank
状元 2002年 总版技术专家分年内排行榜第一
Blank
榜眼 2003年 总版技术专家分年内排行榜第二
Blank
探花 2004年 总版技术专家分年内排行榜第三
Bbs4
本版专家分:1839
匿名用户不能发表回复!
其他相关推荐
C#线程之间操作无效|不允许访问控件(c# 线程间操作无效: 从不是创建控件“”的线程访问它)
解决方法 1.创建事件委托 c#不允许对跨线程的控件的访问,如需操作跨线程的操作需要通过委托(delegate),即是函数指针来操作跨线程。说明dgList控件不是该线程的控件,需要使用委托操作。比如: delegate void SetListBoxCallback(string str); //定义委托(SetListBoxCallback名称可以变化,自己定义) public voi
解决 Control.Invoke 必须用于与在独立线程上创建的控件交互。在智能设备上的(c# / PDA)
using System; using System.Linq; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using Op
C#子线程创建新窗体心得(对Windows窗体控件进行线程安全调用)
自己在写socket通讯碰到这样的问题: 除主UI线程外,有一个后台socket监听线程一直在监听新消息,新消息到来后,右下角弹出一个新窗口提醒用户。 如果用监听线程创建并弹出窗体的话,由于监听线程一直处于阻塞监听状态,没功夫处理UI方面的东西,所以新弹出的窗口会卡死在那里。 解决方法: 应该在主UI线程上创建窗体,通过主线程里面的一个窗体或控件调用Invoke()方法,让创建和显
C# .NET 在一个线程中访问另一个线程的控件
.NET 不允许在一个线程中直接访问另一个线程创建的控件,会引发异常:线程间操作无效,从不是创建控件XXX的线程访问它。Windows 窗体中的控件被绑定到特定的线程,不具备线程安全性。如果从另一个线程调用控件的方法,那么必须使用控件的一个 Invoke 方法来将调用封送到适当的线程。本文以一个线程去改变另一个线程的 Label(lb_Name) 的 Text 属性为例,实
mfc 创建线程函数AfxBeginThread,线程中访问mfc控件
转字http://blog.csdn.net/guomsh/article/details/10377993 1. C++ 中如何定义线程函数      有两种方法:a. 定义线程函数为全局函数    b. 定义线程函数为类的静态成员函数 2. C++中的线程函数如何访问类中的成员变量     针对线程函数为类的静态成员进行说明。如果是静态数据成员,当然可以直接访问,但是如果要
在该控件上执行的操作正从错误的线程调用。
这是跨线程调用控件所致,以往treeView中动态添加节点为例。 可把 this.treeView.Nodes.Add(subNode); 改为: this.treeView.Invoke(new Action(() => { parentNode.Nodes.Add(subNode); }));
c# winform下使用多线程时在线程里如何安全访问窗体控件InvokeRequired
首先我们都知道winform下使用多线程时线程里是不能直接访问窗体的,如果访问会导致异常发生,那么要如何解决呢,接下来看下面的代码: 比如我们做一个抓取网页的程序,窗口要不断的显示抓去网页的信息情况, 第一,我们建立一个richTextBox1文本控件,然后再申明一个委托,msg是要传入到richTextBox1里的信息 public delegate void del(string ms
异常在该控件上执行的操作正从错误的线程调用。使用 Control.Invoke 或 Control.BeginInvoke 封送到正确的线程才能执行此操作。
最近遇到子进程调用控件发生的异常的解决方法: 比如:子进程获取到的数据,并根据数据对Treeview 创建节点 //子进程方法 robot_GetPublicContactEvent() 则在子进程中创建节点 触发以下异常信息:在该控件上执行的操作正从错误的线程调用。使用 Control.Invoke 或 Control.BeginInvoke 封送到正确的线程才能执行此操作。 错误
C#c# 从不是创建控件 的线程访问它。
有两种方式解决  1.在窗体构造函数中写Control.CheckForIllegalCrossThreadCalls =false; 2.使用Invoke等委托函数。 问题原因是。net2.0以后拒绝多线程访问空间,避免空间造成死锁。以前Control.CheckForIllegalCrossThreadCalls =false;默认就是这样,现在默认为true。 如果不会好几个
决多线程操作控件时可能出现的异常:“在某个线程上创建的控件不能成为在另一个线程上创建的控件的父级”
.NET Framework 中关于“多线程 Windows 窗体控件示例”的一些摘要:------------------------------------------------------“Windows 窗体”使用单线程单元 (STA) 模型,因为“Windows 窗体”基于本机 Win32 窗口,而 Win32 窗口从本质上而言是单元线程。STA 模型意味着可以在任何线程上创建窗口
关闭
关闭