我有一个C# app
我想从托盘图标运行。基本上它不应该显示在任务栏最小化时,但当双击托盘图标时,应用程序窗口应显示为正常。C#应用程序 - this.show()和this.hide()导致应用程序挂起
为了达到这个目的,我使用了this.Show()
和this.Hide()
,这些都是我想要的。我遇到的问题是,对于某些用户在显示应用程序时,表单会显示,但是没有任何UI被正确绘制,并且在窗体下方打开的任何内容都会显示。表单变得完全没有反应,但我仍然可以通过双击托盘图标隐藏并显示...
如果我将.Show()
和.Hide()
移开,应用程序运行时不会对用户造成任何问题。
我正在做主线程上的所有UI和检查InvokeRequired
是双重确定的,因为我确实有worker thread
但无法解决此问题。另一点是它不会一直发生,通常只发生在用户的机器空闲一段时间之后。
我真的很感谢这方面的帮助。这些机器是WinXP使用.NET 3.5
和VS2008
您可以在空闲时间前后(应用程序冻结时)检查应用程序的内存使用情况吗?观察使用过程中应用程序的内存使用情况,使用过程中是否频繁增加?我知道这不是一个答案,因此评论,但检查任务管理器中的memroy可能是朝正确的方向检测任何可能的内存泄漏的一步。 Usualy应用程序由于内存问题或偏离课程而冻结,线程被阻塞。如果你的内存是完美的,也许GC在一段空闲时间后会转储一些线程的资源,这会在回来时导致线程损坏。只是一个猜测。 – Nope 2011-06-01 10:51:51