C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.6936 の関連記事表示

<< 0 >>
■6936  Re[7]: Control.Invokeが使えない件。
□投稿者/ 困ったちゃん -(2007/08/27(Mon) 17:43:55)
    2007/08/27(Mon) 19:09:24 編集(投稿者)
    2007/08/27(Mon) 19:08:40 編集(投稿者)
    2007/08/27(Mon) 17:53:57 編集(投稿者)

    前身スレッド■No6760 でお世話になりました (困ったちゃん) です。

    No6887 (れい さん) を引用
    > formCloseチェックを潜り抜け、Invokeに入った後に
    > Formが閉じられ、Nyaruruさんの言う間違ったスレッド終了チェックが行われれば
    > 止まります。

    No6921 (えムナウ さん) を引用
    > それならばformCloseチェックとform_Closingイベント処理中でロックかけたらどうでしょうか?
    > フォームがクローズされた後でNotingにクリアされる前にInvokeされることが原因だと思いますので。

    「ロック」という言葉にインスパイアされて■No6876 のコード(前身スレッドの■No6822 と本質は同じ)
    にちょっと姑息な修正を。
    Closing イベントハンドラで Me.Close を BeginInvoke します。
    これなら、溜まった Invoke が片付いた後に Close が実行されます。
    本スレッドのテーマの『Control.Invokeが使えるか』からは逃避しているだけですけど。

    Private Sub Form2_FormClosed(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs)
    If Not formClose Then
    formClose = True
    Me.BeginInvoke(New System.Threading.ThreadStart(AddressOf Me.Close))
    e.Cancel = True
    End If
    End Sub
記事No.6843 のレス /過去ログ18より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -