我有一个用C#编写的Windows应用程序,启动时需要很长时间。输入Main()
方法的时间超过一分钟。以下组件在我的项目中使用:应用程序在启动过程中需要很长时间
<Reference Include="PresentationCore">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="PresentationFramework">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data.DataSetExtensions">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="UIAutomationProvider">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="WindowsBase">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="WindowsFormsIntegration">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
主营:
static class AppMain
{
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SetForegroundWindow(IntPtr hWnd);
[STAThread]
static void Main()
{
bool bCreatedNew = true;
using (new System.Threading.Mutex(true, "AppMutex", out bCreatedNew))
{
if (bCreatedNew)
{
TextWriterTraceListener traceListener = new TextWriterTraceListener(File.AppendText("./applog.txt"));
Trace.Listeners.Add(traceListener);
Trace.AutoFlush = true;
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
else
{
Process currentProcess = Process.GetCurrentProcess();
foreach (Process process in Process.GetProcessesByName(currentProcess.ProcessName))
{
if (process.Id != currentProcess.Id)
{
if (SetForegroundWindow(process.MainWindowHandle) == false)
MessageBox.Show("Failed to set to foreground..", "Warming", MessageBoxButtons.OK, MessageBoxIcon.Warning);
break;
}
}
}
}
}
我怎么能解决这个问题?
有很多设置的Application.Run之前正在做的 - 为被设置当前目录里无益所以打开跟踪文件在当前目录停滞不前它可以像简单被称为(或者你的主入口是什么)? – 2011-12-24 06:40:25
请在main()中找到更新的代码。 – user186246 2011-12-24 06:53:58
您可以剖析应用程序。 – 2011-12-24 06:55:50