是这样的,原来这段程序是控制台下的,没有窗体界面!
我想在widnows application中使用他,就在有窗体(Form)界面的程序中使用他。
在能上网的情况下,是好用的,但是在不能上网的情况下,在Stream ReceiveStream = result.GetResponseStream();这一句中陷于死机状态,无法执行下去,
只能结束进程!
而在控制台程序中,我可以捕捉到异常,说明网络连接不上,而在windows application中
就捕捉不到了!
我想在widnows application中使用他,就在有窗体(Form)界面的程序中使用他。
在能上网的情况下,是好用的,但是在不能上网的情况下,在Stream ReceiveStream = result.GetResponseStream();这一句中陷于死机状态,无法执行下去,
只能结束进程!
而在控制台程序中,我可以捕捉到异常,说明网络连接不上,而在windows application中
就捕捉不到了!
你要先对是否连接网络做一个判断,用try catch
如果已经在网上了,才继续执行,如果没有在网上就不执行。而且记住,每次一段网,一定要从头判断才行。还有,try catch这个东西比较怪,你非得抓住它判断故障的这个点,如果你抓不住,出来的你也看不懂,和编译器这个出错指示差不多的
但是怎麽先对是否连接网络做一个判断?API?
[DllImport("wininet.dll",EntryPoint="InternetGetConnectedState")]
int InternetGetConnectedState(ref int lpdwFlags,int dwReserved);
使用:
int flags;
if(InternetGetConnectedState(ref flags,0)!=0)
{
Console.Write("connected");
}
else
{
Console.Write("not connected");
}
finally { }
----------------------------------------------
是catch
{MessageBox.Show (" 网络连接失败");}
finally
{ }
如果你要用上面这一句,你可以设置为:
catch(Exception ex)
{MessageBox.Show (" 网络连接失败,原因为:"+ex.Message); }
finally
{ }