首页 新闻 搜索 专区 学院

(WinForm)弹出菜单貌似会导致全部线程处理流程被暂停?

0
悬赏园豆:10 [待解决问题]

添加一个DevPress控件库的树列表控件TreeList(treeList1),

this.treeList1.MouseDown+=treeList_MouseDown;

private void treeList_MouseDown(object sender, MouseEventArgs e){

【弹出一个菜单】 this.treeList1.ContextMenuStrip = this.contextMenuStrip1;

Console.WriteLine("---Hello!!!---");
}

当触发了treeList_MouseDown事件并弹出一个菜单时,下方的Console.WriteLine并不会执行,并且全部子线程处于假死状态,但用isAlive()测试是活着的。这是什么原理?消息循环被暂停还是什么。

PER10的主页 PER10 | 初学一级 | 园豆:31
提问于:2020-09-04 11:31
< >
分享
所有回答(3)
0

你是用showdialog显示的吧,这里会等待一个返回值,只有这个菜单关闭才会接着执行

彭小立 | 园豆:576 (小虾三级) | 2020-09-04 11:44

晕,showdialog是对话框才有的。。用 this.treeList1.ContextMenuStrip = this.contextMenuStrip1; 菜单就出来了,没有showdialog

支持(0) 反对(0) PER10 | 园豆:31 (初学一级) | 2020-09-04 11:46
0

你不是写错位置了吧。应该写进菜单事件里边的吧

flyfishing | 园豆:941 (小虾三级) | 2020-09-04 13:13

没错

支持(0) 反对(0) PER10 | 园豆:31 (初学一级) | 2020-09-04 20:39
0

目前使用多进程代替线程,可避免线程挂掉的问题,不知道究竟什么原因。

PER10 | 园豆:31 (初学一级) | 2020-12-22 18:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册