几何尺寸与公差论坛

 找回密码
 注册
查看: 418|回复: 0

【转帖】C#中使用Invoke调用主线程的控件是否影响进程的结束

[复制链接]
发表于 2010-8-25 10:45:24 | 显示全部楼层 |阅读模式
http://www.programfan.com/club/showpost.asp?id=29621
我最近遇到一个问题,我在做一个局域网聊天工具,在主线程中我创建了一个监听线程,专门用于收包,并不断更新头像列表。而正因为要更新头像列表,所以我在监听线程中使用Invoke方法调用了主线程的TreeView控件.但是但关闭窗口时,进程经常结束不了。打开任务管理器,发现进程还未结束。

【csharpstudy】:
关闭时...要检查线程是否isalive...要关闭线程后再关主程序

thread.abort()

可以在formclosing事件中写

【csharpstudy】:
if (ThdSendFile != null && ThdSendFile.IsAlive)
                ThdSendFile.Abort();

            if (tcplsnServer != null)
                tcplsnServer.Stop();

            foreach (Socket s in socketHolder.Values)
            {
                if (s.Connected)
                    s.Close();
            }
            foreach (Thread t in threadHolder.Values)
            {
                if (t.IsAlive)
                    t.Abort();
            }
            Application.Exit();

关闭线程, 关闭socket

【songcan】:不提倡使用thread.abort()
【Konig2007】:用什么比较好
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|几何尺寸与公差论坛

GMT+8, 2024-3-29 02:28 , Processed in 0.188122 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表