コード例 #1
0
        private void ExecuteAsyncWithWait(Action method, AutoResetEvent cancelEvent, string message)
        {
            StartScreenForm form = new StartScreenForm(cancelEvent, message);

            method.BeginInvoke(ar =>
            {
                try
                {
                    Win32Util.ExecuteOrInvoke(form, form.Close);
                    method.EndInvoke(ar);
                }
                catch (Exception ex)
                {
                    Win32Util.ShowError(this, "Не удалось выполнить операцию. Описание ошибки приведено далее. \r\n" + ex.Message + "\r\n" + ex.StackTrace);
                }
            }, null);

            if (form.ShowDialog() == DialogResult.Cancel && cancelEvent != null)
            {
                cancelEvent.Set();
            }
        }
コード例 #2
0
ファイル: MainForm.cs プロジェクト: vgrinin/gin
        private void ExecuteAsyncWithWait(Action method, AutoResetEvent cancelEvent, string message)
        {
            StartScreenForm form = new StartScreenForm(cancelEvent, message);

            method.BeginInvoke(ar =>
            {
                try
                {
                    Win32Util.ExecuteOrInvoke(form, form.Close);
                    method.EndInvoke(ar);
                }
                catch (Exception ex)
                {
                    Win32Util.ShowError(this, "Не удалось выполнить операцию. Описание ошибки приведено далее. \r\n" + ex.Message + "\r\n" + ex.StackTrace);
                }
            }, null);

            if (form.ShowDialog() == DialogResult.Cancel && cancelEvent != null)
            {
                cancelEvent.Set();
            }
        }