【发布时间】:2016-01-24 05:45:56
【问题描述】:
我正在使用 C# 表单在 Windows 中显示 toast 样式的通知(现有的气球通知有问题,无法根据我的需要进行自定义)。
我在轮询服务器进行更改时在子线程上调用以下代码。
Thread notificationThread = new Thread(() =>
{
NotificationFrame notificationFrame = new NotificationFrame("text1", "text2");
notificationFrame.Show();
Application.Run();
});
notificationThread.Name = "Notification thread";
notificationThread.IsBackground = true;
notificationThread.Start();
但是,此表单并不总是显示。我发现它只有在 Visual Studio 有焦点时才有效。我尝试在没有附加调试器的情况下运行它,但这会导致表单永远不会显示。
例如:
- 我使用调试器运行并专注于 VS2015,框架显示。
- 我使用调试器运行并快速切换到另一个窗口,框架不显示。
【问题讨论】:
-
可能是因为 notificationThread.IsBackground = true; 后台运行不显示。
-
也许我错了,但我认为 IsBackground 仅表示线程会在所有其他主要线程退出时退出。在这种情况下,我确定其他线程正在运行。