protected override void Dispose(bool disposing)
{
if (disposing)
{
Application.Idle -= Application_Idle;
if (target != null)
UnSubscribe(target);
}
base.Dispose(disposing);
}