0

私が現在持っているのは、ユーザーがボタンを押すと、いくつかのファイルをループして変更し、それらを別の場所にコピーするいくつかの機能を実行するメインフォームです。私がしたいのは、ボタンが押されると、テキストボックスが表示された別のフォームが開き、ループの1サイクルが終了すると、テキストボックスに行が出力され、天気が成功したかどうかがユーザーに通知されることです。

現時点で私は持っています:

    Dim t As Threading.Thread
    t = New Threading.Thread(AddressOf Form3.Show)
    t.Start()

そのサイクルの終わりが終わったら、そのテキストボックスにテキストを追加するだけです:

for each x in list
    'copy some files
    Form3.RichTextBox1.AppendText("Cycle 1 compleate")
loop

フォームを実行している間、数回だけ点滅しますか?

ありがとう

4

1 に答える 1

2

すべての UI コントロールを UI スレッドに保持する必要があります。これには、 whole が含まれますForms

バックグラウンドでファイル操作を実行し、メッセージを追加する場合にのみ UI スレッドにマーシャリングすることができます。

ここでは、 BackgroundWorker クラスが適しています。

ここに優れた無料の電子ブックがあります: Albahari .

于 2012-04-28T13:01:36.760 に答える