C# 在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke

http://www.cnblogs.com/fish124423/archive/2012/10/16/2726543.html

 

在Invoke(....)之前加上1 this.components==null 2 this.IsDisposed 3 IsHandleCreated 来return 不执行invoke就可以,当然只是我针对自己遇到的解决的,可能并不适合其他的,但是总不会脱离其中

if (IsDisposed ||!this.Parent.IsHandleCreated) return;

1
2
3
4
5
6
7
8
9
10
11
if (this.IsDisposed) { return; }
if (this.Parent != null && !this.Parent.IsHandleCreated) { return; }
 if (this.IsHandleCreated)
{
 
       this.BeginInvoke(new EventHandler(delegate
       {
                            if (bw.IsBusy) { bw.ReportProgress(i); }
 
       }));
}

 

 
posted @   LuoCore  阅读(1226)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2017-12-22 C# DataGridView 列的显示顺序
点击右上角即可分享
微信分享提示