//応答なしにならないようにメッセージループを回す
        public static bool DoEvents(Form self = null, string message = null)
        {
            if (System.Threading.Thread.CurrentThread.IsBackground)
            {//スレッド処理 停止の確認
                return(false);
            }

            if (message == null)
            {
                //nop
            }
            else if (LastPleaseWaitStaticCache != null)
            {
                LastPleaseWaitStaticCache.Message(message);
            }
            else if (self != null)
            {
                NotifyPleaseWaitUserControl c = GetControll <NotifyPleaseWaitUserControl>(self, null);

                if (c != null)
                {//表示している.
                    c.Message(message);
                    LastPleaseWaitStaticCache = c;
                }
            }
            else
            {//ウィンドウがない状態
                return(false);
            }
            //ループを回す
            Application.DoEvents();
            //停止は受け付けない!
            return(false);
        }