2011-06-29 51 views
0

我在線程新手,但我想知道如何在我的訂單場景線程執行,並且是:IO操作被擋住了我的UI線程,並另一個後臺線程

  • UI線程: Windows窗體背景
  • 主題:那些 File.AppendText()的工作
一個StreamWriter:用遞歸方法實施
  • IO操作的後臺打印服務 的種類

    當我執行我的主App.exe時,有時會啓動Windows窗體和任務管理器(app.exe)中的執行進程,在某些機會中,它只是在後臺啓動執行進程。

    如何確定啓動用戶界面的行爲,我必須建立一個優先級或有點別的?

    我的代碼片段:

    在窗體的Load(APP.EXE)它調用的後續函數的OnStart():

    Dim start As ThreadStart = New ThreadStart(AddressOf Writing) 
           Hilo = New Thread(start) 
           Hilo.IsBackground = True 
           Hilo.Start() 
    

    希洛是Form.vb

    宣佈線程的全局變量類型

    書面方式就是閱讀數據庫,並執行一些動作的功能,當它完成執行它中止線程調用調用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的是,在一個.txt其範圍是所有APP.EXE

    我使用Framework 2.0和任何答案,可以在C#或Vb.Net

    感謝來創作的寫行的StreamWriter提前!

  • +0

    對不起,我的英語不好,但我覺得這個問題是不是真的清楚,有什麼事情我爲使其更容易理解嗎? –

    +0

    我什麼都看不到會導致任何阻塞。你能提供你認爲UI線程被阻止的代碼嗎? –

    +0

    OnStart()重複它自我,因爲是遞歸方法 –

    回答

    0

    我成爲一個解決方案,當需要調用OnStart()函數時使用具有條件的遞歸方法,如果條件不滿足,則調用OnStop()。

    感謝

    相關問題