作者cplusplus (一切都结束了)
看板C_Sharp
标题[问题] 关於form的问题...
时间Sun Aug 24 17:49:07 2008
HI~
我目前需要在执行绪 B 呼叫一些 form 的方法,这些 form 是由执行绪 A 所产生
所以我使用 invoke 来呼叫一些方法以达到执行绪安全,
但是问题来了,首先是,如果我产生那些 form ,还没有呼叫过 show 显示的话
会出现 exception,说控制项代码(我猜是handle)尚未产生无法呼叫 invoke,
於是我呼叫 CreateControl ,恩,文件上是说会强制产生控制项代码handle,
但是没用 ~"~ 一样有这个问题,还是说没产生..........怎麽???
我猜 show 里面应该有一些处理真正产生 handle 之类的功能吧
所以我想说那就只好在乎叫 invoke 前面先呼叫 show 了,
但是这样问题又来了,我在执行绪 A 产生这些 form 的时候,我并不想要马上
呼叫 show 显示出来,於是我想等到 B 里面需要 show 出来的时候才呼叫...
问题是,照我的观察是,哪个 thread 先呼叫了 show (产生handle?),那个执行绪
就要负责那个 form 的 message-handling,所以我 B thread 执行完离开,
那些 form 就卡死了 ~"~.........
以前我也有回答别人这个问题,但现在才发现到似乎是"第一个呼叫 show 的 thread"
要负责 message-handling......而不是产生这个 form 的 thread .....
~"~ 更....
所以我现在的方法是在 A thread 里面产生完马上 show 又马上 hide ,
很烂的方法,会一闪而过,......~"~ 要先显示在萤幕外再隐藏,麻烦又dirty
总觉得这样有点不爽快 XD
请问,是有什麽方法可以处理这个问题呢??? 虽然说可以用上面那个烂方法解决,但是
有点不爽啊 XD ,感谢各位
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.229.1.167
1F:→ cplusplus:总觉得要show才会真的产生东西虽然好像是好事,但不太 08/24 18:12
2F:→ cplusplus:合理的感觉耶~ 真诡异 ~"~ 08/24 18:13