, um den obigen Fehler in folgendem Code zu erhalten. Wie man es korrigiert. Vielen Dank. Bitte suchen Sie nachFehler: überschreiben Sie nicht object.Finalize. Stellen Sie stattdessen einen Destruktor
protected override void Finalize() { Dispose(false); }
im Code unten.
using Microsoft.Win32;
using System.Runtime.InteropServices;
public class Kiosk : IDisposable
{
#region "IDisposable"
// Implementing IDisposable since it might be possible for
// someone to forget to cause the unhook to occur. I didn't really
// see any problems with this in testing, but since the SDK says
// you should do it, then here's a way to make sure it will happen.
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (disposing) {
}
// Free other state (managed objects).
if (m_hookHandle != 0) {
UnhookWindowsHookEx(m_hookHandle);
m_hookHandle = 0;
}
if (m_taskManagerValue > -1) {
EnableTaskManager();
}
}
protected override void Finalize()
{
Dispose(false);
}
#endregion
}
+1 für die Erwähnung ein wenig über warum, anstatt nur Code zu dumping. –
Nun, er erwähnt eigentlich nicht warum. Die Ausnahme selbst gibt das Gleiche an. –