public void Dispose()
{
lock (this)
{
if (AsCString != IntPtr.Zero)
{
Marshal.FreeHGlobal(AsCString);
AsCString = IntPtr.Zero;
}
}
}
}