C# Invoke停滞不能执行

翟光 2016-08-26 04:34:04

代码执行到这里时就不会在往下执行,也不报错,就卡在这里,try catch也没用,mf 是窗体,已验证正确传入进来了。在不用多线程是能正确执行,求问在多线程中怎么解决?
...全文
1220 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 8 楼 以专业开发人员为伍 的回复:
在我们的程序中,基本上是没有使用过 Invoke的,都是使用 BeginInvoke。 单独写代码,很容易抄袭,遇到调试时的反应就能看出一个人的机制理解了。
我也遇到了类似问题,换成BeginInvoke解决了问题,感谢!
翟光 2016-08-27
  • 打赏
  • 举报
回复
引用 2 楼 xiaha3 的回复:
不要用messagebox.show
没用try catch 也是这样,先是出现这种问题,后来才用messagebox.show的
翟光 2016-08-27
  • 打赏
  • 举报
回复
引用 1 楼 sp1234 的回复:
“卡在这里”是卡在哪条语句上?你使用调试器单步执行过下一条语句吗?
使用过,按了F11后就会跳转到主线程,而这里还是不变
xiaha3 2016-08-27
  • 打赏
  • 举报
回复
不要用messagebox.show
翟光 2016-08-27
  • 打赏
  • 举报
回复
引用 10 楼 sp1234 的回复:
你可以看文档。我不是文档,我只分析后续问题。
好的,谢谢!
  • 打赏
  • 举报
回复
你可以看文档。我不是文档,我只分析后续问题。
翟光 2016-08-27
  • 打赏
  • 举报
回复
引用 6 楼 sp1234 的回复:
最后一条语句才会回到 Invoke 的委托方法来执行 --> 最后一条语句才会回到 Invoke 注册的委托方法 SetListBox 来执行
请问意思就是主线程的其他代码执行完毕之后才会执行Invoke 的委托方法,是吗?
  • 打赏
  • 举报
回复
在我们的程序中,基本上是没有使用过 Invoke的,都是使用 BeginInvoke。 单独写代码,很容易抄袭,遇到调试时的反应就能看出一个人的机制理解了。
xiaha3 2016-08-27
  • 打赏
  • 举报
回复
SetListBox 里面下断点没?
  • 打赏
  • 举报
回复
最后一条语句才会回到 Invoke 的委托方法来执行 --> 最后一条语句才会回到 Invoke 注册的委托方法 SetListBox 来执行
  • 打赏
  • 举报
回复
引用 3 楼 gongjiang145 的回复:
[quote=引用 1 楼 sp1234 的回复:] “卡在这里”是卡在哪条语句上?你使用调试器单步执行过下一条语句吗?
使用过,按了F11后就会跳转到主线程,而这里还是不变[/quote] 跳到主线程就是 Invoke 的本意,主线程的所有其它的代码执行完毕,最后一条语句才会回到 Invoke 的委托方法来执行。 这里并不是“没执行”。
  • 打赏
  • 举报
回复
“卡在这里”是卡在哪条语句上?你使用调试器单步执行过下一条语句吗?

110,529

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧