我的以下代码失败,"...已经在本地计算机上注册为源",即使我先做检查:
lock ( eventLock )
{
string eventLog = Constants.EventLogPL;
string eventSrc = Constants.EventSrcPL;
if (!EventLog.Exists(eventLog))
{
if (!EventLog.SourceExists(eventSrc))
{
try
{
EventLog.CreateEventSource(eventSrc, eventLog);
}
catch (Exception e)
{
System.Diagnostics.Debug.WriteLine(e.Message);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我以为我的电话!EventLog.SourceExists
会足以防止我的错误!我正在使用2010 .NET 4和Windows 7 64编译到任何CPU.
编辑:更新代码以获取本地常量以检查它们是否未更改,并使用锁定以确保只有一个线程可以测试和创建.代码仍然失败并出现相同的错误.
我过去几年一直在使用C#,目前我正在使用C++修复错误.在C#中,我可以使用对象的锁来使我的代码线程安全:
lock(lockObject)
{
// Do some work
}
Run Code Online (Sandbox Code Playgroud)
如果在其中有异常,这将解锁lockOject // Do some work
C++中有类似的东西吗?目前我可以想到:
// Code
{
AutoLock lock(lockObject);
// Do some work
}
// More Code
Run Code Online (Sandbox Code Playgroud)
但我不喜欢花括号只是为了我的范围AutoLock
.目前我正在做:
AutoLock lock(lockObject);
// Do some work
lock.Unlock();
Run Code Online (Sandbox Code Playgroud)
如果有异常,让异常展开释放锁定//Do some work
.
我现在正在做什么,但我想知道是否有更好的方式,谢谢.
我需要一些创意加密程序的想法可以任何一个帮助!?我需要用java或c ++创建程序,所以需要为它创建一个逻辑,这个加密编程应该自动加密文件n只有在满足密码等条件时才解密它!请帮助!