我有一個用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