Aracılığıyla paylaş


Görevler Penceresini Kullanma (C#, Visual Basic)

Görevler penceresi İş Parçacıkları penceresine benzer, ancak iş parçacığı tabanlı bilgiler yerine Görev tabanlı zaman uyumsuz desen (TAP) olarak da adlandırılan zaman uyumsuz/await deseni kullanılarak oluşturulan zaman uyumsuz görevler hakkındaki bilgileri gösterir. İş parçacıkları gibi görevler de zaman uyumsuz olup eşzamanlı olarak çalışabilen işlemleri temsil eder; ancak birden fazla görev aynı iş parçacığında çalıştırılabilir.

.NET kodunda, uygulamalarla çalışırken zaman uyumsuz/await desenini (VisualBasic'te Await ve Async) kullanırken Görevler penceresini kullanabilirsiniz. Ancak, Paralel Yığınlar penceresindeki Görevler görünümü genellikle zaman uyumsuz uygulamalarda hata ayıklamak için daha yararlıdır. Daha fazla bilgi için bkz. Zaman uyumsuz uygulamada hata ayıklama.

.NET kodunda, uygulamalarla çalışırken zaman uyumsuz/await desenini (VisualBasic'te Await ve Async) kullanırken Görevler penceresini kullanabilirsiniz. Ancak, Paralel Yığınlar penceresindeki Görevler görünümü genellikle zaman uyumsuz uygulamalarda hata ayıklamak için daha yararlıdır. Daha fazla bilgi için, Paralel Yığınlar penceresinde iş parçacıklarını ve görevleri görüntüleme kısmına bakınız.

Tip

C/C++ kodu için, görev gruplarında, paralel algoritmalarda, zaman uyumsuz aracılarda ve basit görevlerde hata ayıklamanız gerektiğinde Paralel Yığınlarpenceresindeki İş Parçacıkları görünümünü kullanın. Daha fazla bilgi için, Paralel Yığınlar penceresinde iş parçacıklarını ve görevleri görüntüleme kısmına bakınız.

Hata ayıklayıcıya her girdiğinizde Görevler penceresini kullanabilirsiniz. Hata Ayıkla menüsünde Windows'a ve ardından Görevler'e tıklayarak bu menüye erişebilirsiniz. Aşağıdaki çizimde Görevler penceresi varsayılan modunda gösterilmektedir.

Görevler penceresi

Görevler penceresi

Uyarı

Yönetilen kodda, durumu Task, TaskStatus.WaitingForActivation veya TaskStatus.WaitingToRun olan bir , yönetilen iş parçacıkları uyku veya birleştirme durumundayken Görevler penceresinde görüntülenmeyebilir.

Görevler Sütun Bilgileri

Görevler penceresindeki sütunlar aşağıdaki bilgileri gösterir.

Sütun Adı Açıklama
Bayrakları Bayrak eklenmiş görevleri gösterir ve bir göreve bayrak eklemenizi veya görev bayraklarını kaldırmanızı sağlar.
Simgeleri Sarı ok Sarı ok geçerli görevi gösterir. Geçerli görev, geçerli iş parçacığında en üstteki görevdir.

Yeşil ok Yeşil ok geçerli hata ayıklayıcısı bağlamını gösterir (hata ayıklayıcıdaki göreve geçiş sonrasında).

Beyaz ok Hata ayıklayıcı çağrıldığında geçerli olan hata ayıklama görevini(yani) beyaz ok gösterir.

Duraklat simgesi Duraklatma simgesi, kullanıcı tarafından dondurulan bir görevi gösterir. Listede göreve sağ tıklayarak görevi dondurabilir ve çözebilirsiniz.
Kimlik Görev için sistem tarafından sağlanan bir numara. Yerel kodda, görevin adresi budur.
Statü Görevin geçerli durumu (zamanlanmış, etkin, engellenmiş, kilitlenmemiş, bekleniyor veya tamamlandı).

Durum Zamanlandı Planlanan. Henüz çalıştırılmamış bir zamanlanmış görev, bu nedenle henüz bir çağrı yığınına, atanmış bir iş parçacığına veya ilgili bilgilere sahip değildir.

Durum Aktif Aktif. Etkin görev, hata ayıklayıcıyı bozmadan önce kodu yürüten görevdir.

Durum Engellendi Engellenmiş. Engellenen görev, bir olayın gerçekleşmesini, bir kilidin serbest bırakılmasını veya başka bir görevin tamamlanmasını beklediği için bloke olan görevdir.

Durum Bekliyor Bekleniyor. Asenkron/await pattern'ını kullanan engellemeyen, bekleyen bir görev.

Durum Kilitlenmiş Kilitlenmiş. Kilitlenme simgesi, ilişkili iş parçacığı başka bir iş parçacığıyla kilitlenmemiş bir bekleyen göreve başvurur.

Blok hakkında daha fazla bilgi görmek için Durum hücresinin üzerine gelin. Uyarı:Görevler penceresi yalnızca Bekleme Zinciri Geçişi (WCT) tarafından desteklenen bir senkronizasyon mekanizmasını kullanan engellenen görev için deadlock bildirir. Örneğin, WCT kullanan kilitlenmemiş Task bir nesne için hata ayıklayıcısı Awaiting-deadlocked değerini raporlar. WCT kullanmayan Eşzamanlılık Çalışma Zamanı tarafından yönetilen kilitlenmeli bir görev için hata ayıklayıcı Bekliyor durumunu bildirir. WCT hakkında daha fazla bilgi için bkz . Bekleme Zinciri Geçişi.
Başlangıç Zamanı Görevin etkin olduğu zaman.
Süre Görevin etkin olduğu saniye sayısı.
Tamamlanma Süresi Görevin tamamlanma zamanı.
Konum Görevin çağrı yığınındaki geçerli konum. Görevin çağrı yığınının tamamını görmek için bu hücrenin üzerine gelin. Zamanlanmış görevlerin bu sütunda değeri yoktur.
Görev Oluşturulduğunda göreve geçirilen başlangıç yöntemi ve diğer tüm bağımsız değişkenler.
AsyncState Yönetilen kod için görev durumu. Varsayılan olarak, bu sütun gizlidir. Bu sütunu görüntülemek için sütun başlıklarından birinin bağlam menüsünü açın. Sütunlar, AsyncState'i seçin.
Ebeveyn Bu görevi oluşturan görevin kimliği. Bu boşsa, görevin üst öğesi yoktur. Bu yalnızca yönetilen programlar için geçerlidir.
Thread Ataması Görevin üzerinde çalıştığı iş parçacığının kimliği ve adı.
AppDomain Yönetilen kod için, görevin yürütülmekte olduğu uygulama etki alanı.
task_group Yerel kod için, görevi zamanlayan task_group nesnesinin adresi. Zaman uyumsuz aracılar ve basit görevler için bu sütun 0 olarak ayarlanır.
İşlem Görevin üzerinde çalıştığı işlemin kimliği.

Bir sütun başlığına sağ tıklayıp istediğiniz sütunları seçerek görünüme sütun ekleyebilirsiniz. (Seçimleri temizleyerek sütunları kaldırın.) Sütunları sola veya sağa sürükleyerek de yeniden sıralayabilirsiniz. Sütun kısayol menüsü aşağıdaki çizimde gösterilmiştir.

Görevler penceresindeki kısayol görünümü menüsü

Görevler penceresindeki kısayol görünümü menüsü

Görevleri Sıralama

Görevleri sütun ölçütlerine göre sıralamak için sütun üst bilgisine tıklayın. Örneğin, Kimlik sütunu üst bilgisine tıklayarak görevleri görev kimliğine göre sıralayabilirsiniz: 1,2,3,4,5 vb. Sıralama düzenini tersine çevirmek için sütun üst bilgisine yeniden tıklayın. Geçerli sıralama sütunu ve sıralama düzeni, sütundaki bir okla gösterilir.

Görevleri Gruplandırma

Görevleri liste görünümündeki herhangi bir sütuna göre gruplandırabilirsiniz. Örneğin, Durum sütunu üst bilgisine sağ tıklayıp Gruplandırma ölçütü>[durum] seçeneğine tıklayarak, aynı duruma sahip tüm görevleri gruplandırabilirsiniz. Örneğin, görevlerin neden engellendiğine odaklanabilmeniz için bekleyen görevleri hızla görebilirsiniz. Hata ayıklama oturumu sırasında ilgi çekici olmayan bir grubu da daraltabilirsiniz. Aynı şekilde, diğer sütunlara göre gruplandırabilirsiniz. Grup üst bilgisinin yanındaki düğmeye tıklanarak bir grup işaretlenebilir veya işareti kaldırılabilir. Aşağıdaki çizimde Görevler penceresi gruplandırılmış modda gösterilmektedir.

Görevler penceresinde gruplandırılmış mod

Görevler penceresinde gruplandırılmış mod

Anne Baba Çocuk Görünümü

(Bu görünüm yalnızca yönetilen kod için kullanılabilir.) Durum sütunu üst bilgisine sağ tıklayıp Grupla>Üst Öğeye Göre'ye tıklayarak, görev listesini hiyerarşik bir görünümle değiştirebilirsiniz. Bu görünümde her alt görev, üst düğümü altında görüntülenebilir veya gizlenebilir bir alt düğümdür.

Görevleri İşaretleme

Görev listesi öğesini seçip bağlam menüsünden Atanan İş Parçacığı'na Bayrak Ekle seçeneğini belirleyerek veya ilk sütundaki bayrak simgesine tıklayarak, görevle ilişkili iş parçacığını işaretleyebilirsiniz. Birkaç görevi bayrakla işaretlerseniz, bayrak eklenmiş tüm görevleri en üste getirmek için bayrak sütununa göre sıralayabilirsiniz, böylece yalnızca bunlara odaklanabilirsiniz. Yalnızca işaretlenmiş görevleri görüntülemek için Paralel Yığınlar penceresini de kullanabilirsiniz. Bu, hata ayıklama için ilgilenmediğiniz görevleri filtrelemenize olanak tanır. Bayraklar hata ayıklama oturumları arasında kalıcı olmaz.

Dondurma ve Çözme Görevleri

Görev listesi öğesine sağ tıklayıp Atanan İş Parçacığını Dondur'a tıklayarak görevin üzerinde çalıştığı iş parçacığını dondurabilirsiniz. (Bir görev zaten dondurulduysa komut, Atanan İş Parçacığını Çöz'dür.) Bir iş parçacığını dondurduğunuz zaman, geçerli kesme noktasından sonra kodda ilerlediğinizde bu iş parçacığı yürütülmeyecektir. Bu İş Parçacığı Dışındaki Tüm İş Parçacıklarını Dondur komutu, görev listesi öğesini çalıştıran iş parçacığı dışındaki tüm iş parçacıklarını dondurur.

Aşağıdaki çizimde her görevin diğer menü öğeleri gösterilmektedir.

Görevler penceresindeki kısayol menüsü

Görevler penceresindeki kısayol menüsü

Etkin Görevi veya Çerçeveyi Değiştirme

Göreve Geç komutu mevcut görevi aktif görev yapar. Çerçeveye Geç komutu, seçili yığın çerçevesini etkin yığın çerçevesi yapar. Hata ayıklayıcısı bağlamı geçerli göreve veya seçili yığın çerçevesine geçer.