軟件測試開發技術.NET Compact Framework多線程下的等待事件

發表于:2009-08-14來源:作者:點擊數: 標簽:軟件測試線程frameworkFrameworkCompact
軟件 測試 開發 技術.NET Compact Framework多線程下的等待事件 .NET 構架 關鍵字:WinCE .NET 在WinCE或者 Windows Moblie開發中常常把大量的批處理工作提交給工作進程(Worker Thread)進行,當批處理工作完成時,或者該進程發生失敗以及異常的時候需要通知界
軟件測試開發技術.NET Compact Framework多線程下的等待事件  .NET 構架

關鍵字:WinCE .NET

  在WinCE或者Windows Moblie開發中常常把大量的批處理工作提交給工作進程(Worker Thread)進行,當批處理工作完成時,或者該進程發生失敗以及異常的時候需要通知界面進程(UI Thread)進行同步。(PS:有時候同步的是兩個worker thread,而不是UI Thread,這由具體應用來決定。)這時候往往需要等待事件。。NET Framework 提供的等待事件封裝在System.Threading.WaitHandle里面。但是。NET Compact Framework下的WaitHandle不能提供。NET Framework所有的功能,在等待時間里只是提供了WaitOne功能(只能等待一個Event)。其實在一般的應用,UI進程往往等待一個事件就夠了,下面演示WaitOne的使用。

  由于WaitHandle是一個抽象類(abstract class),所以例子使用其sub-class AutoResetEvent .

  定義field,父線程和子線程都需要訪問到

  private static AutoResetEvent autoEvent = new AutoResetEvent(false);

  public bool Connect()

  {

  //Do sth. eg make connections.

  ThreadPool.QueueUserWorkItem(

  new WaitCallback(CheckConnection), null);

  // Wait for work method to signal.

  if (autoEvent.WaitOne(5000, false))

  {

  return true;

  }

  else

  {

  return false;

  }

  }

  private void CheckConnection(Object stateInfo)

  {

  while(true)

  {

  if (CheckConnection())

  {

  // Signal that work is finished.

  autoEvent.Set();

  }

  }

  }

 

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97