0
A
答えて
0
あなたはアプリケーションに引き上げるすべてののイベントのためのグローバルなハンドラを登録することはできませんが、実際には反射の助けを借りて、静的イベント用に独自のハンドラを登録することができます
public class Program
{
public static void Main(string[] args)
{
MethodInfo handler = typeof(Program).GetMethod("GlobalEventHandler");
IEnumerable<EventInfo> events = AppDomain.CurrentDomain
.GetAssemblies()
.Select(a => a.GetTypes()
.Select(t => t.GetEvents(
BindingFlags.Public |
BindingFlags.NonPublic |
BindingFlags.Static)
.Where(e => typeof(EventHandler)
.IsAssignableFrom(e.EventHandlerType))))
.SelectMany(e => e)
.SelectMany(e => e);
foreach (EventInfo evt in events)
evt.GetAddMethod(true).Invoke(null, new object[]
{
Delegate.CreateDelegate(evt.EventHandlerType, null, handler)
});
}
public static void GlobalEventHandler(object sender, EventArgs args)
{
Debugger.Break(); // <-- When a static event is fired, the application will break here
Console.WriteLine("An event was fired!");
}
サポート静的イベントはそれほど多くありません。
16実際:
- Application.ApplicationExit
- Application.Idle
- Application.EnterThreadModal
- Application.LeaveThreadModal
- Application.ThreadExit
- ToolStripManager.RendererChanged
- SystemEvents.DisplaySettingsChanging
- SystemEvents.DisplaySettingsChanged
- SystemEvents.EventsThreadShutdown
- SystemEvents.InstalledFontsChanged
- SystemEvents.LowMemory
- SystemEvents.PaletteChanged
- SystemEvents.TimeChanged
- ComponentDispatcher.ThreadIdle
- ComponentDispatcher.EnterThreadModal
- ComponentDispatcher.LeaveThreadModal
関連する問題
- 1. エラーが発生した時点でデバッグが中断します(Visual Studio)
- 2. Visual StudioでQtの例をコンパイル中にリンクエラーが発生する
- 3. イベントハブセットアップでVisual Studio診断設定エラーが発生しました
- 4. Visual Studioでデバッグ中のすべてのエラーが発生する
- 5. Visual Studioで更新されたデータベースをインポート中に問題が発生する
- 6. ナゲットのインストール中にエラーが発生するVisual Studio 2017
- 7. Visual Studio C++でユニットテスト中にリンカエラーが発生しました
- 8. Visual Studio 2008でリンクエラーが発生する
- 9. asp.net webapi application_startイベントが2回以上発生する(Visual Studio + iisexpress)
- 10. Visual Studioデバッガ。 ASP.NET ImageButtonクリックイベントが発生しない
- 11. Visual Studio 2017ルールセットファイルをロード中にエラーが発生しました
- 12. Visual Studio for Macのインストール中にエラーが発生しました
- 13. Android/Java SDKの検索中にエラーが発生するVisual Studio 2015でシステムエラーが発生する
- 14. Visual Studio:マシン上のchrome.exeを処理するWebkitデバッガを接続するとエラーが発生しました
- 15. 新しいアプリケーションを作成中にXamarin Visual Studioでエラーが発生する
- 16. Visual Studioでリポジトリを複製中にGit Flowエラーが発生する
- 17. 例外が発生した後にプログラムをステップバックする - Visual Studio
- 18. Visual Studio 2005でGridView_RowUpdatingイベントが発生しない
- 19. 致命的なエラーVisual Studio 2010でデバッグ中にHRESULT = 0x80131c08が発生する
- 20. Webサイトの構築中にVisual Studio 2012でエラーが発生する
- 21. node_modulesはVisual Studioでビルドを中断する
- 22. Visual StudioデバッガでC++をデバッグ
- 23. ゲーテッドチェックイン:ソースをシーブするとVisual Studioでロールバックが発生する
- 24. Visual Studioでコードマップを表示するとエラーが発生する
- 25. Visual Studio Team Services - 配備後にビルドが中断し始めた
- 26. エラーが発生するようにVisual Studioを拡張する
- 27. Typescript - Visual Studioコードで.tsファイルをコンパイル中にエラーが発生しました
- 28. Visual StudioデバッガをアタッチするとCPU使用率が高くなり、UIスレッドロックが発生する
- 29. ソケット切断イベントが発生したときにlaravelイベントまたは関数を呼び出す方法
- 30. Visual Studio 2012前提条件:インストール中に致命的なエラーが発生する
どのイベントですか?それを購読し、ブレークポイントを入れてください。 – Sinatr
https://msdn.microsoft.com/en-us/library/system.diagnostics.debugger.break(v=vs.110).aspx – apocalypse
私に説明しましょう: 私はデバッガモードです。コード内の既存のイベントが発生したときはいつでも休憩したいです。私は、200,000のイベントのような100000行のコードを持っています。私はちょうど、いつも存在するイベントが発砲しているときはいつも休憩したいと思っています。 あなたは今理解していただければ幸いです。 – TheOnionMaster