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 是定义的;不过他们的实例化是在按钮里面实现的,是不是这样才造成的; 还有就是改成上面这种形式的话,可不可以呢; 求详解? 展开
{
try
{
serverSocket.Shutdown(SocketShutdown.Both);
serverSocket.Close();
myThread.Abort();
}
catch
{
return;
}
}
如果在catch里捕获异常的话,会提示:未将对象的引用设置到对象的实例化;这是什么原因呢? 是try里的造成的,serverSocket myThread 是定义的;不过他们的实例化是在按钮里面实现的,是不是这样才造成的; 还有就是改成上面这种形式的话,可不可以呢; 求详解? 展开
7个回答
展开全部
首先在类内函数外定义serverSocket和myThread,需要new出来,然后
//Abort方法用于永久地杀死一个线程。但是请注意,在调用Abort方法前一定要判断线程是否还激活
if (mythread.IsAlive)
{
mythread.Abort();
}
还有就是catch (Exception ex)捕获异常信息可以用Messbox.Show(ex.toString());看异常信息
//Abort方法用于永久地杀死一个线程。但是请注意,在调用Abort方法前一定要判断线程是否还激活
if (mythread.IsAlive)
{
mythread.Abort();
}
还有就是catch (Exception ex)捕获异常信息可以用Messbox.Show(ex.toString());看异常信息
追问
还有一个是套接字 进程可以这样解决 那套接字呢? 谢谢!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当然了。。。
按钮里面触发的又不是一个全局变量,你没触发按钮事件的时候,serverSocket 不是就没有实例化了吗?
你把serverSocket 的实例化放到全局去不就得了。
按钮里面触发的又不是一个全局变量,你没触发按钮事件的时候,serverSocket 不是就没有实例化了吗?
你把serverSocket 的实例化放到全局去不就得了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
函数外定义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());
}
}
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里捕获异常 首先确定你的异常是不是在界面关掉后这个异常是否能正确报出
追问
catch 能正常捕捉到异常,但是我现在做的比较简单;
就是进程开始是在按钮中促发的;
如果我按了按钮的话 就不会报错的;
但是如果我一打开就关闭就会报错了;所以写成这个样子;
追答
如果是这样的 你只需要把进程触发写到form_load里的就可以了
按你说的应该是进程还没触发就调用了 所以导致的错误
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有实例化就是没有new了啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询