2012-06-20 22 views
12

Tôi có ứng dụng WPF, sau khi đóng ứng dụng, quy trình app.exe *32 vẫn đang chạy trong danh sách quy trình trong trình quản lý tác vụ.Quá trình đăng ký sẽ không đóng

tôi cần điều này để đóng như khi tôi thực hiện một chỉnh sửa mã của tôi, tôi nhận được lỗi sau -

Unable to copy file "obj\x86\Release\frontEndTest.exe" to "bin\Release\app.exe". The process cannot access the file 'bin\Release\app.exe' because it is being used by another process. 

Tôi biết rằng loại này của câu hỏi đã được hỏi trước here.

Tuy nhiên, giải pháp không làm việc cho tôi bằng cách thay đổi của tôi để Assembly.cs -

[assembly: AssemblyVersion("2.0.0")] 
[assembly: AssemblyFileVersion("2.0.0")] 

tôi nghĩ rằng có lẽ nếu tôi được tìm ra Window closed sự kiện và puttting một cái gì đó như - Process.GetCurrentProcess().Kill(); trong sự kiện để khi một người dùng đóng ứng dụng từ nút màu đỏ 'x' ở phía trên bên phải của mẫu này có lẽ sẽ giết chết quá trình?

+2

Rất có thể bạn có một số chủ đề vẫn đang chạy sau khi cửa sổ chính đóng. Bạn có sử dụng bất kỳ 'BackgroundWorker' s hoặc 'Thread' s? Nếu vậy, bạn sẽ phải bằng cách nào đó báo hiệu họ chấm dứt. – Jon

+0

Có hai loại chủ đề: Nền và không phải nền. Chủ đề nền sẽ tự động bị chấm dứt khi quá trình cha mẹ chết; các chủ đề không phải nền sẽ giữ cho quá trình cha mẹ còn sống. Có lẽ bạn có một hoặc nhiều chủ đề nên là chủ đề nền? –

+0

Tôi hiểu, làm cách nào tôi có thể biết chuỗi nào đang chạy và cách chấm dứt chúng? – Ebikeneser

Trả lời

41

Vì vậy, quá trình của bạn vẫn hoạt động sau khi bạn đã tắt. Điều này thường có nghĩa là bạn có một chủ đề giữ nó sống động. Đây là cách bạn có thể theo dõi nó xuống.

Thứ nhất, gắn với nó trong trình gỡ lỗi:

                                enter image description here

enter image description here

                                        enter image description here

Bây giờ mở đề danh sách:

        enter image description here

Bấm đúp mỗi chủ đề mà bạn nhìn thấy ở đây:

enter image description here

Và bạn sẽ được đưa đến những gì các chủ đề hiện đang thực hiện:

                                enter image description here

Điều đó, ngay tại đó, là những gì ngăn ứng dụng ngừng hoạt động. Người ta phải thoát khỏi vòng lặp đó để ứng dụng thoát (hoặc, cách khác, đặt Thread.IsBackground thành true).

+0

Đây là một câu trả lời rất hữu ích, và bây giờ tôi có thể xem các chủ đề, tuy nhiên nguồn không có sẵn như nó có trong ứng dụng của bạn? – Ebikeneser

+0

@Jambo Nhưng bạn có thể thấy chủ đề giữ nó sống động, đúng không? Nó có tên không? Danh mục là gì? Bạn có thể muốn đăng ảnh chụp màn hình các chuỗi trong câu hỏi của mình. –

+0

Chúng ta có thể làm điều này mà không cần Visual Studio? – user960567

10

Environment.Exit (0);

Terminates this process and gives the underlying operating system the specified exit code.  

0 được trả lại khi hoàn tất thành công.

Các vấn đề liên quan