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?
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. –
Dzięki Scott, dodał kod i udało się go uruchomić w jednym przypadku. –
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) –