почему мой значок уведомления не отображается в системном трее при запуске формы Windows?
Вот что я делаю.
У меня есть служба Windows, которая запускает мое приложение в трее, которое является приложением формы Windows (я использую олицетворение для запуска этого приложения в контексте текущего пользователя).
В приложении трей я запускаю форму, которая содержит значок уведомления.
Проблема здесь в том, что значок уведомления иногда не появляется в системном трее, и я не могу выяснить, почему.
В методе OnLoad формы я устанавливаю для свойства visible значение false.
Также я делаю некоторые удаленные вызовы службы (например, IPC). Это проблема?
Как сделать так, чтобы значок уведомления всегда отображался в системном трее?
РЕДАКТИРОВАТЬ: Вот код для функции OnLoad
protected override void OnLoad(System.EventArgs e)
{
this.Visible = false;
//Get some value from registry
CheckForStealthMode();
GetLoginType();
bool GetProbeStatus = false;
ServiceActivityInterface remoteMethods = null;
do
{
try
{
remoteMethods = (ServiceActivityInterface)Activator.GetObject(typeof(ServiceActivityInterface), "tcp://localhost:18800/ServiceRemoting);
ProbeStatus = remoteMethods.GetProbeStatus();
GetProbeStatus = true;
}
catch (Exception exception)
{
GetProbeStatus = false;
log.Error("Exception while getting the status of Probe:" + exception.Message);
}
finally
{
remoteMethods = null;
if (!GetProbeStatus)
{
Thread.Sleep(5000);
log.Debug("Retrying to get the probe status.");
}
}
} while (!GetProbeStatus);
}