2011-05-12 21 views
7

İlk yazıyı ve ardından çeşitli dosyalardan görüntüleri ayıklayacak bir uygulama yazıyoruz.QTAgent32 Holding Dosyası Aç

Test komut dosyalarımızda, metni çıkardıktan sonra, dosyanın başka bir işlem tarafından açık tutulduğu görüntü çıktısı için dosyayı açmaya çalıştığımızı görüyoruz.

Dosyaya yapılan tüm referansları kapattık, imha ettik ve boş bıraktık.

İşlem Gezgini'ni kullanarak, onu açık tutan QTAgent32 olduğunu gördük.

Bu kitaplıktan tanıtıcıyı serbest bırakmasını nasıl söyleyebiliriz veya bu bilinen bir hatadır ve üretim kodunu etkilemez mi?

+0

Kodunuzda QTAgent kullanıyor musunuz, yoksa bu dosyalara erişmek için olan rastgele, tanımlanmamış bir süreç mi? – soandos

+0

QTAgent32'nin komut satırı nedir? – SLaks

+0

Kodumuzda QTAgent kullanmıyoruz. – griegs

cevap

3

QTAgent32, Visual Studio'nun test çalıştırıcısıdır.

Bu, testinizin kapanmayı unuttuğunuz bir FileStream olduğu anlamına gelir.

+0

@SLaks, Kütüphanemizi çağıran ve hala aynı hatayı alan bir Windows uygulaması yazdım. Test koşucusunun neden bu durumda çalıştığını biliyor musun? – griegs

+0

Herhangi bir birim testiniz var mı? (değilse, neden olmasın?) QTAgent32'nin komut satırı ve üst sürecini kontrol edin. – SLaks

+0

Ünite testleri var, ancak kütüphaneyi çağıran windows uygulamasından çıkarılmamalılar mı? – griegs

0

Sınamaları hata ayıklamada çalıştırmayı, yürütmeyi duraklatmayı ve nelerin bozulduğunu görmeyi deneyin. (Bu "fakir adamın profil oluşturma" tekniği hakkında bir yere yığılma konusunda iyi bir cevap var).

Bu sorun örneğimi bu şekilde çözdüm. İlk denemede, NetworkStream.Read numaralı telefona yapılan bir çağrıda yürütme molası görmeye şaşırdım. Bir arka plan iş parçacığı üzerinde çalışıyordu, böylece testler hala devam ediyordu, ancak testlere dahil edilmek istenmiyordu. Yine de ölü koddu, ben de tamamen kaldırdım, VS'yi yeniden başlattım ve testler tekrar sorunsuz çalışıyor.

+0

Teşekkürler, bu projeye geri döndüğümüzde denemeliyiz – griegs