2014-10-29 9 views
8

Possiedo Visual Studio Professional 2013 e sto eseguendo il debug di un'applicazione che utilizza async/attendi ampiamente. Ma quando mi fermo al breakpoint e apro la finestra Debug/Windows/Tasks, dice sempre "Nessuna attività da visualizzare".VS2013 Debug/Windows/Compiti: "Nessuna attività da visualizzare"

Ho effettuato due test, in uno riesco a vedere l'attività, in un altro non posso (eseguo il programma e lo interrompo). O posso spezzare l'attesa per la linea di lavoro.

using System; 
using System.Threading; 
using System.Threading.Tasks; 

namespace TasksDebugWindowTest 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      DoesNotWork(); 
     } 

     static void Works() 
     { 
      Console.WriteLine("Starting"); 
      var t = Task.Factory.StartNew(() => 
      { 
       Task.Delay(100 * 1000).Wait(); 
       Console.WriteLine("Task complete"); 
      }); 
      Console.WriteLine("Status: {0}", t.Status); 
      Thread.Sleep(500); 
      Console.WriteLine("Status: {0}", t.Status); 
      t.Wait(); 
      Console.WriteLine("Done"); 
     } 

     static void DoesNotWork() 
     { 
      Console.WriteLine("Starting"); 
      var t = Task.Delay(100 * 1000); 
      t.Wait(); // **** Breakpoint here 
      Console.WriteLine("Task complete"); 
     } 
    } 
} 

Qualcuno può spiegare perché posso vedere le attività in un caso, ma non in un altro?

+0

Dovrebbe comparire, ho creato [un semplice programma di test] (https://dotnetfiddle.net/mVHNSq) e quando guardo la mia vista attività [si presenta] (http: //i.stack.imgur .com/I2oIv.png) (questa immagine è di VS2013 Premium). Puoi aggiungere un semplice programma di test che replica il problema e pubblicalo nella tua domanda [come una modifica] (http://stackoverflow.com/posts/26638563/edit)? Senza un esempio riproducibile, è probabile che la tua domanda venga chiusa. –

+0

Grazie Scott, ha aggiunto il codice e riesce a farlo funzionare in un caso. –

+0

Puoi pubblicare uno screenshot di esso non funziona? Il tuo "esempio non funziona" funziona bene sulla mia macchina se io [metti in pausa durante l'attesa] (http://i.stack.imgur.com/jZyKP.png) o se io [uso un punto di interruzione] (http://i.stack.imgur.com/mZK5i.png) –

risposta

Problemi correlati