2014-02-21 111 views
0

我试图关闭我的应用程序在Windows CE 6.0设备上运行。 我尝试了下面的代码。为什么我无法关闭窗体?

 System.Diagnostics.Process.Start("ShutDown", "/r");//to restart 
     Process.Start("shutdown.exe", "-s"); 

     Application.Exit(); 

     System.Windows.Forms.Application.Exit(); 

     Process procs = Process.GetCurrentProcess(); 
     procs.Kill(); 

     this.Close(); 

上述代码在调试时关闭,应用程序关闭时执行Application.Exit();。但是,当我将代码编译到autorun.exe(可执行文件)并运行时,屏幕在执行同一行时冻结。

请指导我解决这个问题。

public Form1() 
    { 
     int i = AddFontResource("\\Flash Disk\\Arial Unicode MS.TTF"); 
     int c = AddFontResource("\\Flash Disk\\Devanagari_new.TTF"); 
     int d = AddFontResource("\\Flash Disk\\Mangal.TTF"); 
     InitializeComponent(); 
    } 
+0

你能告诉我们你是如何实例化你的主窗体和你可能使用的任何其他窗体的。它可能会让我们对发生的事情有所洞察。另外,你能告诉我们你用这个.NET框架吗?我可以想到一些错误和内存泄漏问题,但我需要更多的信息。 –

+0

@Noobacode只有一种形式用于处理多个屏幕活动。 – Rameshbabu

+0

您可以分享该表单的实例化代码,并告诉我您使用的是什么.NET框架?你有没有设置字体? –

回答

0

有一个已知的错误,如果您使用您的设置设置字体会导致挂起。注释掉你的字体设置代码,看它是否运行并正确关闭。如果是这样,那么这是设置字体的错误。请确保您的目标系统具有字体,顺便说一下......它可能是其中一个问题。

获取Debugger并用它来分析关闭期间造成挂起的原因。使用起来相当简单。或者这个Debugger。我不知道你的完整设置。

如果你不确定,this article将是一个非常好的指南,让你开始调试。

另外,如果您还没有这样做,请将您的代码包装到__try{}__except{}中。可能会有内存泄漏,但直到我们看到来自其中一个来源的某些信息时才会知道。

+0

等待...我会试一试... – Rameshbabu

+0

不..不工作..再次屏幕冻结。 – Rameshbabu

+0

@ user2865487将所有字体设置代码注释掉了? –

相关问题