在WPF上添加第一个ToolStripMenuItem时,NotifyIcon冻结应用程序一段时间

时间:2017-04-11 09:12:05

标签: c# wpf notifyicon

我已编写以下代码来初始化我的WPF应用程序的NotifyIcon:

var Notify = new System.Windows.Forms.NotifyIcon();
        var sri = Application.GetResourceStream(new Uri("/Content/Images/icon.ico", UriKind.Relative));
        var bitmap = new System.Drawing.Bitmap(sri.Stream);
        var handle = bitmap.GetHicon();
        Notify.Icon = System.Drawing.Icon.FromHandle(handle);
        System.Windows.Forms.ContextMenuStrip Menu = new System.Windows.Forms.ContextMenuStrip();
        Notify.ContextMenuStrip = Menu;
        System.Windows.Forms.ToolStripMenuItem ExitMenuItem = new System.Windows.Forms.ToolStripMenuItem("Exit");
        ExitMenuItem.Click += (s, e) =>
        {
            Application.Current.Shutdown();
        };
        Menu.Items.Add(ExitMenuItem);
  

申请冻结在以下一行(详见下文):

        System.Windows.Forms.ToolStripMenuItem ExitMenuItem = new System.Windows.Forms.ToolStripMenuItem("Exit");

它在许多机器上运行良好,但有时会在少数其他机器上冻结应用程序2分钟。我遇到此问题的一台机器如下:

  联想G50 8GB Ram 64bit Windows 10家庭英特尔酷睿i7-5500U CPU 2.40   GHZ

经过多次测试尝试后,我发现只有在创建第一个ToolStripMenuItem并将其添加到NotifyIcon的ToolStripMenu时才会出现此问题(在本例中为 ExitMenuItem )。但我无法理解为什么会这样。我已经标记了应用程序开始冻结的行。非常感谢您的帮助。

0 个答案:

没有答案