我在寫一個類,它必須作爲dll文件添加到任何.NET項目中。 我被困在點,我需要使事件System.Diagnostics.StackTrace「last_method_name_changed」。StackTrace ByRef VB.NET中的另一個類
所以我需要找到一種方法來檢測StackTrace中的變化,或創建線程進入或退出方法時引發的事件。喜歡的東西:
Public Class DllClass
Public Shared CallerTrace as StackTrace = Nothing
Public Shared New(ByRef NewTrace as StackTrace) 'This is called from form.
'''I know this will make a copy, but I have failed to find a solution.
CallerTrace = NewTrace
End Sub
Public Shared Sub StackTrace_Changed() Handles CallerTrace.Changed
MsgBox(CallerTrace.GetFrame(0).GetMethod.Name)
End Sub
End Class
從主窗體這應該是隻有一次叫:
Dim DllCls as New DllClass(New Diagnostics.StackTrace)
我會在製作「參考鏈接」或指針堆棧跟蹤和事件,將感謝任何幫助在CallerTrace.GetFrame(0).GetMethod.Name
更改時引發。
謝謝您的重播! – user1983608
我明白你的觀點,但我還有一個問題。例如,如果我創建後臺線程,並將無限循環檢查StackTrace的更改。我如何獲得當前主線程中使用的方法? – user1983608
我不知道你是否可以獲得單獨線程的堆棧跟蹤。實際上,Stack Overflow的其他答案表明[這是不可能的](http://stackoverflow.com/a/5307360/1968)。 –