【问题标题】:http request button. destination unreachablehttp请求按钮。目的地无法到达
【发布时间】:2018-11-06 05:17:34
【问题描述】:

在 C# 中, 我有一个接受 HTTP 请求作为远程命令的设备。

我创建了一个发送这些请求的按钮,它不是完美的,但它可以工作。

但是,当设备断开连接并且有

无法到达目的地

响应应用程序冻结,直到我重新启动它。 我需要一种解决方法,也许会在 1 秒后关闭流。

     private void httpBTN_Click(object sender, EventArgs e)
    {
        String URI = "http://192.168.1.118/cgi-bin/aw_cam?cmd=DCB:0&res=0";
        WebClient webClient = new WebClient();
        Stream stream = webClient.OpenRead(URI);
        stream.Close();
    }

【问题讨论】:

标签: c# webclient


【解决方案1】:

GUI 中长时间运行的操作存在问题:只要操作尚未完成(结果或超时),事件就不会完成。并且只要一个 Event 没有完成,no 其他代码就可以运行。甚至没有通过更改更新 GUI 的代码或“是的,我收到有关用户输入的消息”到 Windows。您将需要某种形式的多任务处理。

幸运的是,网络是长时间运行的操作最常见的情况之一,因此它具有内置的多任务处理方式(异步功能)。然而,这可能不是最好的开始。作为多任务初学者,我建议在 Windows 窗体中使用 BackgroundWorker。至少在你掌握了调用和竞争条件之前。从长远来看,async/await 是更好的模式,但学习曲线要​​陡峭得多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-23
    • 1970-01-01
    • 2017-09-24
    • 2013-09-24
    • 1970-01-01
    • 2013-04-20
    • 2020-01-23
    • 1970-01-01
    相关资源
    最近更新 更多