모든 .NET 프로젝트에 DLL 파일로 추가해야하는 클래스를 작성하고 있습니다. 나는 System.Diagnostics.StackTrace "last_method_name_changed"에 이벤트를 만들어야하는 시점에 갇혀있다.StackTrace VB.NET의 다른 클래스에 대한 Byref
그래서 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
별도의 스레드에 대한 스택 추적을 얻을 수 있는지 여부는 알 수 없습니다. 사실 스택 오버플로에 대한 다른 대답은 [this is not] (http://stackoverflow.com/a/5307360/1968)를 나타냅니다. –