C# FORM窗体关闭的时候促发的事件。

privatevoidForm1_FormClosed(objectsender,FormClosedEventArgse){try{serverSocket.Shutd... private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
try
{
serverSocket.Shutdown(SocketShutdown.Both);
serverSocket.Close();
myThread.Abort();
}
catch
{
return;
}
}
如果在catch里捕获异常的话,会提示:未将对象的引用设置到对象的实例化;这是什么原因呢? 是try里的造成的,serverSocket myThread 是定义的;不过他们的实例化是在按钮里面实现的,是不是这样才造成的; 还有就是改成上面这种形式的话,可不可以呢; 求详解?
展开
 我来答
百度网友f2081ce
2011-09-27 · TA获得超过198个赞
知道小有建树答主
回答量:249
采纳率:0%
帮助的人:213万
展开全部
首先在类内函数外定义serverSocket和myThread,需要new出来,然后
//Abort方法用于永久地杀死一个线程。但是请注意,在调用Abort方法前一定要判断线程是否还激活
if (mythread.IsAlive)
{
mythread.Abort();
}
还有就是catch (Exception ex)捕获异常信息可以用Messbox.Show(ex.toString());看异常信息
追问
还有一个是套接字  进程可以这样解决   那套接字呢?   谢谢!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jack87918
2011-09-27 · TA获得超过2048个赞
知道小有建树答主
回答量:1618
采纳率:100%
帮助的人:1457万
展开全部
当然了。。。
按钮里面触发的又不是一个全局变量,你没触发按钮事件的时候,serverSocket 不是就没有实例化了吗?
你把serverSocket 的实例化放到全局去不就得了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yanbook3156
2011-09-27
知道答主
回答量:32
采纳率:0%
帮助的人:13.5万
展开全部
函数外定义serverSocket和myThread,需要new出来
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
try
{
serverSocket.Shutdown(SocketShutdown.Both);
serverSocket.Close();
myThread.Abort();
}
catch (Exception ex)
{
Messbox.Show(ex.toString());
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-09-27
展开全部
为什么要把return 写在catch里呢
要在catch里捕获异常 首先确定你的异常是不是在界面关掉后这个异常是否能正确报出
追问
catch 能正常捕捉到异常,但是我现在做的比较简单;
就是进程开始是在按钮中促发的;
如果我按了按钮的话 就不会报错的;
但是如果我一打开就关闭就会报错了;所以写成这个样子;
追答
如果是这样的 你只需要把进程触发写到form_load里的就可以了 
按你说的应该是进程还没触发就调用了 所以导致的错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liyanly1120
2011-09-27 · TA获得超过380个赞
知道小有建树答主
回答量:213
采纳率:0%
帮助的人:134万
展开全部
没有实例化就是没有new了啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式