C#WinForm在新线程中动态创建控件时,gif图动不动

 我来答
376710727
2016-04-19 · TA获得超过8937个赞
知道大有可为答主
回答量:2593
采纳率:100%
帮助的人:1272万
展开全部
这个问题我在WPF中遇到过,Winform中思路应该类似
举个例子,主窗口Mainform
你直接在Load方法中(UI线程)写上,添加一个image,然后写上路径,
那么执行后,你会看到窗口上多了一个image控件,然后里面有gif图。

但是如果你用的是新建的线程去加载控件,直接就会报错!
因为ui线程是不允许被后台线程调用的,你写Mainform.Children.Add(image) 这句肯定是编译不通过的。
后台线程和UI交互是需要委托的,WPF WF不太一样,WF应该是INVOKE一个DELEGATE,
后台通过委托事件,把信息传回UI线程。

一般来讲只要UI线程没有阻塞 GIF都是动的。

还有,一般很少通过后台线程来创建控件(WF里我不太了解是否可行,WPF里是不会这么做的),一般都会设计好容器的大小和控件的位置,通过事件来改变各个控件的visibility属性,从而达到UI上显示或隐藏的效果
kcxnvbdbd
2016-04-18 · TA获得超过523个赞
知道小有建树答主
回答量:885
采纳率:50%
帮助的人:616万
展开全部
gif放在UI线程显示,而耗时操作放在子线程执行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式