コード例 #1
0
        /// <summary>
        /// Task  that calls method saving window position
        /// on disk.
        /// When it called - do:
        /// 1) Set flag _isInPosMonitoring
        /// (to make only one call of task).
        /// 2)Wait till user finish changing positions
        ///  (we assume that user doesn't change during 500 msec)
        /// 3) Call saving method
        /// 4) Reset flag _isInPosMonitoring
        ///
        /// Called from
        /// 1. BaseTerminalWindow.OnUpdateWindowPosAndSize()
        /// 2. BaseTerminalWindow.BaseTerminalWindow_Closed
        /// </summary>

        private void TaskSaveWindowData()
        {
            const int _minChangeSaveIntervalMSec = 500;

            _isInPosMonitoring = true;

            while ((DateTime.Now - _dtLastPosChanged).TotalMilliseconds <
                   _minChangeSaveIntervalMSec)
            {
                Thread.Sleep(100);
            }



            KernelTerminal.SaveWindowPosition(_geomWindow);

            _isInPosMonitoring = false;
        }