示例#1
0
        /// <summary>
        /// 非同期処理からメッセージボックスを表示する(WPF)。
        /// </summary>
        /// <param name="messageBoxText">メッセージ テキスト</param>
        /// <param name="caption">Caption</param>
        /// <param name="button">表示するボタン</param>
        /// <param name="icon">表示するアイコン</param>
        /// <returns>MessageBoxResult</returns>
        /// <remarks>主スレッドで表示するメッセージボックスを呼び出す)</remarks>
        public MessageBoxResult ShowAsyncMessageBoxWPF(string messageBoxText, string caption, MessageBoxButton button, MessageBoxImage icon)
        {
            // 非同期処理からメッセージボックスを表示するメソッドのdelegate
            ShowAsyncMessageBoxDelegateWPF showAsyncMessageBoxDelegateWPF
                = new ShowAsyncMessageBoxDelegateWPF(this._ShowAsyncMessageBoxWPF);

            // 引数の作成
            object[] args = new object[] { messageBoxText, caption, button, icon };

            // オブジェクトの型によって振り分け
            if (this.thisWPF != null)
            {
                // 副スレッドなので、Dispatcher.Invokeを経由して主スレッドで呼び出す。
                return((MessageBoxResult)this.thisWPF.Dispatcher.Invoke(showAsyncMessageBoxDelegateWPF, args));
            }
            else
            {
                // 型の不一致
                throw new FrameworkException(
                          FrameworkExceptionMessage.ASYNC_MSGBOX_ERROR[0],
                          FrameworkExceptionMessage.ASYNC_MSGBOX_ERROR[1]);
            }
        }
示例#2
0
        /// <summary>
        /// 非同期処理からメッセージボックスを表示する(WPF)。
        /// </summary>
        /// <param name="messageBoxText">メッセージ テキスト</param>
        /// <param name="caption">Caption</param>
        /// <param name="button">表示するボタン</param>
        /// <param name="icon">表示するアイコン</param>
        /// <returns>MessageBoxResult</returns>
        /// <remarks>主スレッドで表示するメッセージボックスを呼び出す)</remarks>
        public MessageBoxResult ShowAsyncMessageBoxWPF(string messageBoxText, string caption, MessageBoxButton button, MessageBoxImage icon)
        {
            // 非同期処理からメッセージボックスを表示するメソッドのdelegate
            ShowAsyncMessageBoxDelegateWPF showAsyncMessageBoxDelegateWPF
                = new ShowAsyncMessageBoxDelegateWPF(this._ShowAsyncMessageBoxWPF);

            // 引数の作成
            object[] args = new object[] { messageBoxText, caption, button, icon };

            // オブジェクトの型によって振り分け
            if (this.thisWPF != null)
            {
                // 副スレッドなので、Dispatcher.Invokeを経由して主スレッドで呼び出す。
                return (MessageBoxResult)this.thisWPF.Dispatcher.Invoke(showAsyncMessageBoxDelegateWPF, args);
            }
            else
            {
                // 型の不一致
                throw new FrameworkException(
                    FrameworkExceptionMessage.ASYNC_MSGBOX_ERROR[0],
                    FrameworkExceptionMessage.ASYNC_MSGBOX_ERROR[1]);
            }
        }