如何在DownloadDataAsync之后关闭webclient

时间:2012-08-13 18:58:36

标签: .net c++-cli webclient

我们有一种情况,我们使用WebClient类从服务器下载一些数据。我们可以控制客户端和服务器部分。目前,每次用户执行操作时,都会生成webclient并用于建立与服务器的连接。然后,客户端在后台下载一些数据并使用它。当用户重复发生这种情况时会出现问题...在服务器端(不是基于.net)我们看到连接超时后我们的超时时间并没有被拆除发送到服务器。这让我想到了我的问题......

是否有正确的方法来发出信号或强制拆除webclient类使用的HTTP连接?

代码: pMPTF是一个回调类,用于将.net事件带入非托管世界。

void Callback(System::Object^ sender, System::Net::DownloadDataCompletedEventArgs^ e)
{
   WebClient^ w = (WebClient^)sender;
   w->Dispose();
   if( e->Error == nullptr && pMPTF != NULL )
      pMPTF->ParseResponse(e->Result);
   else
      pMPTF->ParseResponse( nullptr );
}

给出:

  

错误C2039:'Dispose':不是'System :: Net :: WebClient'的成员

1 个答案:

答案 0 :(得分:1)

此时操作完成。如果使用delete,将丢弃该对象。我建议您阅读托管C ++中对象的处理方式:msdn.microsoft.com/en-us/library/ms177197.aspx

如果您想手动关闭回复,可以致电GetWebResponse并致电返回的Close对象上的WebResponse