Начиная с .NET 4.5
вы можете исключить исключение WaitHandleCannotBeOpenedException
для случая, когда именованного системного события не существует, с помощью метода TryOpenExisting()
:
EventWaitHandle result = null;
if (!EventWaitHandle.TryOpenExisting("eventName", out result))
{
if (result == null)
{
// event was not found
}else
{
// result represent a cross process WaitEvent handle
}
}
public static bool TryOpenExisting(
string name,
out EventWaitHandle result
)
MSDN :
Если вы не уверены, существует ли указанное событие синхронизации, используйте
перегрузка этого метода вместо перегрузки метода OpenExisting,
который выдает исключение, если событие синхронизации не существует