public virtual void Dispose()
 {
     ScriptThread.Remove(this);
 }