在win7上安装SqlServer2008时出现错误:在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke

时间:2022-08-23 18:48:44
在win7上安装SqlServer2008时出现错误:在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke  求助啊!

16 个解决方案

#1


关闭了IE浏览器试试

#2


本帖最后由 roy_88 于 2011-11-05 09:21:18 编辑
可能权限不够,建议用 administrator 帐号登陆安装(注:默认情况下,WIN7下是把administrator禁用,开启administrator方法:右键 计算机,管理 ,用户  然后开启

administrator)

#3


  在win7上安装SqlServer2008时出现错误:在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke,请不用担心,从网上找到的原因:

    在Window窗体程序开发的时候,如果使用多线程编程,在子线程中访问主线程窗体内的控件,就需要使用控件的Control.Invoke方法或者BeginInvoke方法。但是有时候因为Window执行速度太快,尤其是你写代码的时候在InitializeComponent();完成之前起了一个线程去执行某些操作,涉及到窗体控件的,当你在调用
Control.Invoke的时候,就可能出现 “在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke”错误。

解决的办法就是让线程等待,直到窗口句柄创建完毕:

 

             //防止在窗口句柄初始化之前就走到下面的代码
                while (!this.IsHandleCreated)
                {
                    ;
                }
                this.Invoke(new MethodWithoutParameter(LoadContactTemplate));

 

对于安装程序时候出现此错误的解决办法就是:要等一段时间,那个进程就会自动释放。然后再运行SqlServer2008的软件即可。

#4


很简单的问题,把360关掉就可以装了

#5


2楼正解、、、、、学习了

#6


我是把360关了就OK了,万恶的360啊

#7


你之前装过。。或打开过却没安装。。。
你把程序里有个sql2008的东西卸了。。看安装时间。。
就算你不装系统也会给你装个 sql 2008 的什么东西。。记不起名字了。。
如果之前装过。还有要把 注册表清干净。。在注册表中 搜 [sql server 2008] [项][值][数据]都搜但不要全字匹配。。。
还有要记得重启。。
装sql2008先装iis  如果你要用到Reporting Services的话。
打开安装程序是 右键[以管理员方式]打开。。
安装的第一个路径别改。。动一下。就得重装。。

#8


二楼正解...多谢分享!

#9


我也是这样

#10


以管理员身份运行

#11


二楼果然正解! 在win7上安装SqlServer2008时出现错误:在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke

#12


引用 11 楼 hdhhgdh 的回复:
二楼果然正解! 在win7上安装SqlServer2008时出现错误:在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke
二楼,抱了! 在win7上安装SqlServer2008时出现错误:在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke

#13


怎么不给二楼分啊    顶一个

#14


关闭浏览器 或者 关闭 360,金山毒霸等杀毒软件试试,如果还不行,请重启下电脑,在重新安装应该就可以了

#15


2楼是正解,真的!

#16


其实安装时提示“在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke ”解决办法只需把防火墙关闭就可以了。

#1


关闭了IE浏览器试试

#2


本帖最后由 roy_88 于 2011-11-05 09:21:18 编辑
可能权限不够,建议用 administrator 帐号登陆安装(注:默认情况下,WIN7下是把administrator禁用,开启administrator方法:右键 计算机,管理 ,用户  然后开启

administrator)

#3


  在win7上安装SqlServer2008时出现错误:在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke,请不用担心,从网上找到的原因:

    在Window窗体程序开发的时候,如果使用多线程编程,在子线程中访问主线程窗体内的控件,就需要使用控件的Control.Invoke方法或者BeginInvoke方法。但是有时候因为Window执行速度太快,尤其是你写代码的时候在InitializeComponent();完成之前起了一个线程去执行某些操作,涉及到窗体控件的,当你在调用
Control.Invoke的时候,就可能出现 “在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke”错误。

解决的办法就是让线程等待,直到窗口句柄创建完毕:

 

             //防止在窗口句柄初始化之前就走到下面的代码
                while (!this.IsHandleCreated)
                {
                    ;
                }
                this.Invoke(new MethodWithoutParameter(LoadContactTemplate));

 

对于安装程序时候出现此错误的解决办法就是:要等一段时间,那个进程就会自动释放。然后再运行SqlServer2008的软件即可。

#4


很简单的问题,把360关掉就可以装了

#5


2楼正解、、、、、学习了

#6


我是把360关了就OK了,万恶的360啊

#7


你之前装过。。或打开过却没安装。。。
你把程序里有个sql2008的东西卸了。。看安装时间。。
就算你不装系统也会给你装个 sql 2008 的什么东西。。记不起名字了。。
如果之前装过。还有要把 注册表清干净。。在注册表中 搜 [sql server 2008] [项][值][数据]都搜但不要全字匹配。。。
还有要记得重启。。
装sql2008先装iis  如果你要用到Reporting Services的话。
打开安装程序是 右键[以管理员方式]打开。。
安装的第一个路径别改。。动一下。就得重装。。

#8


二楼正解...多谢分享!

#9


我也是这样

#10


以管理员身份运行

#11


二楼果然正解! 在win7上安装SqlServer2008时出现错误:在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke

#12


引用 11 楼 hdhhgdh 的回复:
二楼果然正解! 在win7上安装SqlServer2008时出现错误:在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke
二楼,抱了! 在win7上安装SqlServer2008时出现错误:在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke

#13


怎么不给二楼分啊    顶一个

#14


关闭浏览器 或者 关闭 360,金山毒霸等杀毒软件试试,如果还不行,请重启下电脑,在重新安装应该就可以了

#15


2楼是正解,真的!

#16


其实安装时提示“在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke ”解决办法只需把防火墙关闭就可以了。