簡體   English   中英

我的 C# 應用程序在循環中,如何在代碼中找到位置?

[英]My C# application is in a loop, how can i find the position in the code?

我寫了一個在后台運行的相當大的應用程序,做圓頂的東西並處理一些數據。

現在的問題是,有一段時間應用程序運行良好。 但是當我一天后檢查時,例如我的應用程序的 Backgroundworker 似乎循環或卡住了。 沒有錯誤消息,應用程序的 UI 仍然運行良好。 它只是停止處理數據。

專門針對這種情況,我為自己添加了一個簡單的網站,Backgroundworker 會在其中報告當前的 DateTime。 因此,當網站上的 DateTime 有點最新時,我知道它運行良好。 但是當它過去時,我知道我的應用程序被卡住了。

問題出現在不確定的時間之后。 它可以是 10 分鍾或 90 小時。

現在進行調試:是否可以在 Visual Studio 中查看應用程序當前所在的位置? 這將使調試變得更加容易。 否則我將不得不在反復試驗的基礎上設置斷點......

此致,

朱利安

你有兩個選擇:

1.- 按照建議的方式附加調試器並檢查代碼,但如果應用程序長時間運行良好,這不是最好的主意。

2.- 日志文件。 創建日志文件來跟蹤您的應用程序。

我會怎么做:我會結合這兩種選擇。 添加日志文件以檢查結果以及應用程序何時達到某些點(由您決定),然后,一旦我或多或少地知道問題出在哪里,請使用調試器。

祝你好運

編輯:

我完全同意這個答案,但要補充一點,您可能會受益於讓后台工作人員在進入和離開特定部分時將關鍵位置信息傳遞回 UI,以便您在附加時可以簡單地詢問它。 由於問題可能需要幾個小時才能顯現出來,除非您使用具有有限條目的滾動日志,否則您最終可能會遇到大量日志文件,連續設置一個告示至少可以讓您大致知道將斷點放在哪里在那一刻。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM