2009-10-22 5 views

답변

2

여전히 키에 대해 열린 핸들이 있으므로 삭제 표시가되어 있어도 아직 제거되지 않았습니다. 따라서 키를 참조하는 핸들을 닫을 수 있습니다. 더 좋으면 핸들을 먼저 삭제하지 않고 수정할 수 있습니다.

0

Close()으로 전화를 시도 했습니까? 실패하면 Flush()을 시도해 볼 수 있습니다.

0

described on TechNet으로, 이것은 키에 열린 핸들이있는 경우 발생합니다. 모든 핸들이 닫히면 키가 삭제되고 다시 생성 될 수 있습니다.

1

다시 작성하기 전에 Close() 키에 대한 모든 참조가 필요합니다. 그것은 아직 삭제되지 않은

marked for deletion.

:

-1

는 여기에 중요한 어구입니다! 분명히 다시 만들 수는 없지만 (기존의) 기존 키와 충돌합니다. C# 개체를 닫거나 플러시하는 것은 문제가 아닙니다. 레지스트리 자체를 플러시하도록 운영 체제를 확신시켜야합니다. 내가 확실하게 알고있는 유일한 방법은 컴퓨터를 다시 시작하는 것입니다.

지금은 OS가 삭제를 완료하지 못하게하는 것이 귀하의 프로그램 일 수 있습니다. 하지만 또 다시 뭔가있을 수 있습니다.

+0

이것은 올바르지 않습니다 (단, 마지막 문장이 가까워짐). OP는 단순히 키에 대한 열린 핸들을 가지고 있으므로 아직 파기 할 수 없습니다. –

+0

닫기()에 대한 MSDN 페이지에서 : "키를 닫고 내용이 수정되면 디스크로 플러시합니다." –

관련 문제