Çözüldü C# "because it is being used by another process." hatası

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Mesaj gönderimine kapalı.

Froxx

Hectopat
Katılım
7 Aralık 2019
Mesajlar
49
Merhaba, bir süredir C# öğreniyorum ve bir hata ile karşılaştım, hatayı çözmek için çok uğraştım ama çözemedim, ileri düzeyde bilgisi olan bir arkadaş Discord ismini verebilirse çok memnun olurum olurum.
Hata; 'because it is being used by another process.'
 
Çözüm
Kod:
private void wc_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e){
    if(e.Error == null){
        var process = Process.Start(program_name);
        process.EnableRaisingEvents = true;
        process.Exited += (_,args) => {
            File.Delete(program_name);
            //Performs on process exited.
        };
    }
    else{
        //Error handling...
    }
}

PC başında değilim ama bunun işe yaraması lazım.
Kod:
private void wc_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e){
    if(e.Error == null){
        using(Process process = Process.Start(program_name)){
            process.Exited += (_,args) => {
                File.Delete(program_name);
                //Performs on process exited.
            };
        }
    }
    else{
        //Error handling...
    }
}

Bu kod bahsedilen process sonlandığı an dosyayı silecektir. Bunu verdiğim metodun yerine yapıştırın.
 
Maalesef hocam çalışmadı.

Dediklerinizi yaptım lakin olmadı. Yinede sağolun hocam.
 
Nasıl olmadı? Hata mı veriyor? Lütfen daha fazla ayrıntı verin.
 
Kod:
private void wc_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e){
    if(e.Error == null){
        var process = Process.Start(program_name);
        process.Exited += (_,args) => {
            File.Delete(program_name);
            //Performs on process exited.
        };
    }
    else{
        //Error handling...
    }
}

Böyle dener misiniz? Bu şekilde çalışması lazım. Using kullanarak sanırım Process'i event çağrılmadan önce dispose ettim.
 
Hocam sonuç aynı, hata yok ve dosyayı silmiyor. :/
 
Kod:
private void wc_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e){
    if(e.Error == null){
        var process = Process.Start(program_name);
        process.EnableRaisingEvents = true;
        process.Exited += (_,args) => {
            File.Delete(program_name);
            //Performs on process exited.
        };
    }
    else{
        //Error handling...
    }
}

PC başında değilim ama bunun işe yaraması lazım.
 
Çözüm
Hocam oldu size ve diğer arkadaşlara ne kadar teşekkür etsem azdır. Çok teşekkürlerim.
 
Durum
Mesaj gönderimine kapalı.
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…