を遮断し、次のようです:IO操作は、私はスレッドでは初心者だが、私は私のシナリオでは、スレッドの実行を注文する方法を知りたい私のUIスレッドと、別のバックグラウンドスレッド
- UIスレッド: Windowsフォームの背景
- スレッド:File.AppendText(の 仕事をするのStreamWriter)
メインapp.exeを実行すると、タスクマネージャ(app.exe)でWindowsフォームと実行プロセスが起動することがありますが、いくつかのポートフォリオでは実行プロセスがバックグラウンドで起動されるだけです。
UIを起動する動作を決定するにはどうすればよいですか、優先度を設定する必要がありますか?
マイコードスニペット:
Dim start As ThreadStart = New ThreadStart(AddressOf Writing)
Hilo = New Thread(start)
Hilo.IsBackground = True
Hilo.Start()
ヒロがForm.vb
で宣言スレッドのグローバル変数の型です:フォームのLoad(app.exeの)、それは以下の関数のOnStart()を呼び出して
足す)は、それが実行を終了したときに、それは(OnStopを呼び出したスレッドを中断し、データベースを読み、いくつかのアクションを実行する機能である:
Protected Sub OnStop()
Try
If Not (Hilo Is Nothing) And Hilo.IsAlive Then
Hilo.Abort()
End If
objWriter.WriteLine("------------------------------------------------")
objWriter.Close()
Catch exc As Exception
LogEventSI(exc.Message & " - " & exc.StackTrace)
End Try
End Sub
ObjWriterは、その範囲は、すべてのapp.exeの
に私はフレームワーク2.0を使用していて、いずれかの答えはC#やVb.Net
にwrittedすることができ.txtファイル内の行を記述するのStreamWriterのおかげでありますあらかじめ!
私の悪い英語のため申し訳ありませんが、私は質問が本当に明確ではないと思いますが、? –
ブロックされているものは何もありません。 UIスレッドがブロックされていると思われるコードを提供できますか? –
OnStart()は再帰的メソッドであるためselfsを繰り返します –