2008年4月10日 星期四

Threading (Part 2)(4.10)

書刊:Application Development Foundation




















帶參數的執行緒(Passing Data to Threads)(p.377)
  • 必須使用 ParameterizedThreadStart 的物件來委派
  • 指定委派的方法,必須是個有帶 object 型態參數的方法
終止執行緒(Stopping Threads)(p.379)
  • 使用 theThread.Abort() 來執行終止執行緒( theThread 是物件名稱)
  • 適情況來使用「關鍵區域(CriticalRegion)」,防止執行緒執行不完全
  • Thread.BeginCriticalRegion() => 關鍵區域起點
  • Thread.EndCriticalRegion() => 關鍵區域終點
  • 當執行緒處於關鍵區域時,它會繼續執行直到離開關鍵區域才終止(Stop)
執行背景內容(Execution Context)(p.381)
  • 每個執行緒都有散播相關資訊給下一代的能力
  • 相反地,每個執行緒都會繼承其相關資訊
  • 優點:直接可接收相關資訊來使用
  • 缺點:繼承的過程中比較耗效能
  • ExecutionContext 類別提供「SuppressFlow」、「RestorFlow」來控制是否繼承
  • 透過 AsyncFlowControl 來移轉資料流達到關閉的效果
  • 利用 theFlow.Undo() 重新開啟散播功能( theFlow 是 AsyncFlowControl 物件名」
  • 若要在關閉散播功能後,繼續使用相關資訊,可在「前面」加入 ExecutionContext.Capture()來備份一份,之後要使用時,再利用 ExecutionContext.Run 來執行指定的內容
相關的使用方法,請參見「程式範例」


程式範例


沒有留言: