2015-03-31 91 views
0

我已经使用C#(.NET Framework v4.0)创建了Windows应用程序。应用程序的目的是将各种第三方应用程序API集成到一个单一的应用程序中。应用程序退出控制

目前,我遇到了客户端启动API请求的问题。由于某些原因,如Internet缓慢,API响应时间稍长。 用户使用红色应用程序退出按钮关闭应用程序,或者在极少数情况下使用任务管理器退出应用程序。

现在问题仍然存在,API Request在其侧面成功处理,但在我们的应用程序读取之前,应用程序已关闭,并且失去了线程,并未反映在我们的身边。

有没有什么方法可以让我们控制这个应用程序退出?我们是否可以阻止此应用程序退出,特别是在API请求正在进行时。当应用程序的API请求正在进行

解决方案正在实施

  • 使用全局变量。
  • 使用MDI Form OnClosing事件触发器来检查变量的状态并阻止应用程序退出。

此方法不会阻塞任务管理器应用程序关闭方案。

是否有任何可能的方法可以实施来阻止此问题或更好的方法,可以大大减少我的应用程序中的这种特定的错误。

+0

'form.FormClosing'事件给出了关闭的原因。 – Loathing 2015-03-31 06:23:06

回答

0

无法通过任务管理器阻止用户从中阻止正在运行的应用程序。

任务管理器的kill命令是专杀挂应用程序(无论它是什么在这一刻做)

最好的解决办法:避免你的应用程序的悬挂,提供清洁的方式来退出你的应用程序。教育你的用户只使用任务管理器作为(非常)最后的手段。

+0

如何避免这个应用程序挂起。在Internet连接速度较慢的情况下,我无法实施解决方案。这个问题发生在非常有限的情况下,但它仍然反映出肮脏的API。 – Dilip 2015-03-31 08:10:27

+0

这是另一个有趣的问题。通常:使所有耗时/长时间运行的任务_asynchronous_。细节超出了本评论的范围 – DrKoch 2015-03-31 08:34:59