お世話になります。
C#のプログラムにて、「ウィンドウハンドルは既に存在します。」のアプリケーションエラーが発生します。
フォームアプリケーションから、ポップアップウィンドウとしてAppication.Run でフォームを表示しております。問題なく動作していましたが、突然1回だけ発生し(アプリケーションエラーとなりました)その後は、再度プログラムを実行し、何もなかったように動作しております。
何が引き金になっているかご教授ください。
■発生しているソース
上位プログラムからは、ShowAircastNotifyをCALLしています。
private void ShowAircastNotify(int kind, string name)
{
// 表示するメッセージを取得
string Message = _ConfigInfo.FindMessage(kind, (int)Classes.Telegrams.TelegramStatus.enumStatusKind.ON_AIR);
// 表示 ThreadPool.QueueUserWorkItem(new WaitCallback(DisplayAircastNotify), string.Format(Message, name)); } /// ポップアップ表示スレッド private void DisplayAircastNotify(object parameter) { _AircastNotifyForm = new Forms.AircastNotify(); _AircastNotifyForm.DisplayStatus = (string)parameter; _AircastNotifyForm.StoppingRequest = new dmcaCommon.ComDef.DlgVoid_Void(ReqestStopping); _AircastNotifyForm.Owner = _OwnerForm; _AircastNotifyForm.DisplayWaitTime = _ConfigInfo.Settings.displayWait.cancel; Application.Run(_AircastNotifyForm); <<ここで発生!! }
■エクセプション
ソース "System.Windows.Forms" からのイベント ID 0 の説明が見つかりません。このイベントを発生させるコンポーネントがローカル コンピューターにインストールされていないか、インストールが壊れています。ローカル コンピューターにコンポーネントをインストールするか、コンポーネントを修復してください。
イベントが別のコンピューターから発生している場合、イベントと共に表示情報を保存する必要があります。
イベントには次の情報が含まれています:
内容:
ウィンドウ ハンドルは既に存在します。
スタックトレース:
場所 System.Windows.Forms.NativeWindow.CheckReleased()
場所 System.Windows.Forms.NativeWindow.CreateHandle(CreateParams cp)
場所 System.Windows.Forms.Control.CreateHandle()
場所 System.Windows.Forms.Form.CreateHandle()
場所 System.Windows.Forms.Control.get_Handle()
場所 System.Windows.Forms.Control.SetVisibleCore(Boolean value)
場所 System.Windows.Forms.Form.SetVisibleCore(Boolean value)
場所 System.Windows.Forms.Control.set_Visible(Boolean value)
場所 System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
場所 System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
場所 System.Windows.Forms.Application.Run(Form mainForm)
場所 CastSynchronize.CastSynchronize.DisplayAircastNotify(Object parameter) 場所 C:\CastSynchronize.cs:行 626
場所 System.Threading._ThreadPoolWaitCallback.WaitCallback_Context(Object state)
場所 System.Threading.ExecutionContext.runTryCode(Object userData)
場所 System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
場所 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
場所 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
場所 System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)
場所 System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。