有啥方法可以停止 WPF 的 UI 窗口实例

Posted

技术标签:

【中文标题】有啥方法可以停止 WPF 的 UI 窗口实例【英文标题】:Is there any way to stop the UI window instance of WPF有什么方法可以停止 WPF 的 UI 窗口实例 【发布时间】:2022-01-06 06:24:17 【问题描述】:

当我在服务器上发送数据并且服务器未启动时,我得到一个异常 Unable to connect to the server 并且 UI 窗口实例在执行代码行时关闭: (response = await client.PostAsJsonAsync("windows/actions", data).ConfigureAwait(false);)。如何停止不应关闭的 UI 窗口。

我的代码:

        public static async void PostInfo(List<ElementProps> requestObj)
    
    try
        
        HttpResponseMessage response;
        using (HttpClient client = new HttpClient())
            
            // Setting Base address. 
            client.BaseAddress = new Uri("http://126.1.1.1:8888/"); 

            // Setting content type.
            client.DefaultRequestHeaders.Accept.Add(new 
            MediaTypeWithQualityHeaderValue("application/json"));

            string list = JsonConvert.SerializeObject(requestObj); 
            object data = JsonConvert.DeserializeObject(list); 

            // HTTP POST ** Here is the error **
            response = await client.PostAsJsonAsync("windows/actions", data).ConfigureAwait(false); 

            // Verification
            if (response.IsSuccessStatusCode)
             
                 System.Windows.MessageBox.Show("Recording saved successfully!"); <br/>
             
         
     

    catch (Exception ex) 
     
         MessageBox.Show(ex.Message);
         ErrorLog.Log(ex);
     

【问题讨论】:

请编辑您的问题,以更易读的格式包含您的代码(并且不要为您的问题文本添加不必要的粗体)。有关编辑指导,请参阅 ***.com/editing-help。 请下次从文本编辑器中复制代码,而不是浏览器等。 &lt;br/&gt; 不属于代码。 确定我会从下一次开始处理这个问题。感谢@PMF的建议 在这种情况下,您的程序应该进入 catch 块。但是由于ConfigureAwait(false),您可能不再在UI线程上,因此MessageBox.Show可能会失败。 No MessageBox.show 不会失败它会显示异常但我需要停止 UI 窗口实例。 【参考方案1】:

我的主线程在 http 客户端异步操作完成之前退出。

我只是将.Wait() 添加到调用者以维护主线程。所以,我有这个:

PostInfo(Records).Wait();

【讨论】:

感谢@Elikill58 编辑我的答案实际上我在堆栈溢出方面非常新,但为什么您将答案标记为无用?它解决了我的问题,因此根据我的问题对我有用。 我没有标记为无用。如果您在谈论否决票,那不是因为我

以上是关于有啥方法可以停止 WPF 的 UI 窗口实例的主要内容,如果未能解决你的问题,请参考以下文章

wpf中 closing事件和unload事件有啥区别?

WPF的控件没有句柄,但是有啥其他间接方法获得WPF控件的句柄啊。

WPF的控件没有句柄,但是有啥其他间接方法获得WPF控件的句柄啊。

WPF的控件没有句柄,但是有啥其他间接方法获得WPF控件的句柄啊。

WPF中如何实现将一个窗口的对象关联到另一个窗口?

如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI