2014-10-29 49 views
8

Mam program Visual Studio Professional 2013 i debuguję aplikację, która korzysta z asynchronizacji/czekam na wiele. Ale gdy zatrzymuję się w punkcie przerwania i otwieram okno Debug/Windows/Tasks, zawsze jest napisane "Brak zadań do wyświetlenia".VS2013 Debugowanie/Windows/Tasks: "Brak zadań do wyświetlenia"

Zrobiłem dwa testy, w jednym widzę zadanie, w innym nie mogę (uruchamiam program i wstrzymuję go). Mogę też złamać punkt widzenia w oczekiwaniu na linię zadań.

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"); 
     } 
    } 
} 

Czy ktoś może wyjaśnić, dlaczego widzę zadania w jednym przypadku, ale nie w innym?

+0

Powinien się pokazać, stworzyłem [prosty program testowy] (https://dotnetfiddle.net/mVHNSq) i kiedy patrzę na widok mojego zadania [pokazuje się] (http: //i.stack.imgur .com/I2oIv.png) (ten zrzut ekranu pochodzi z VS2013 Premium). Czy możesz dodać prosty program testowy, który replikuje problem i publikuje go w twoim pytaniu [jako edycję] (http://stackoverflow.com/posts/26638563/edit)? Bez powtarzalnego przykładu twoje pytanie prawdopodobnie zostanie zamknięte. –

+0

Dzięki Scott, dodał kod i udało się go uruchomić w jednym przypadku. –

+0

Czy możesz opublikować zrzut ekranu, który nie działa? Twój "nie działa przykład" działa dobrze na moim komputerze, jeśli [pauzuję w czasie oczekiwania] (http://i.stack.imgur.com/jZyKP.png) lub jeśli [użyję punktu przerwania] (http://i.stack.imgur.com/mZK5i.png) –

Odpowiedz