• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 軟件測試開發技術.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.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>