2016-07-03 12 views
4

プロセスが閉じられているときにライブラリでクリーンアップを行いたいのですが、そのためのDotNet Coreの代替手段は何ですか? .NET Framework 4ではAppDomain.CurrentDomain.ProcessExitを使用しました。AppDomain.CurrentDomain.ProcessExitイベントの代わりにDotNetコアとは何ですか?

+0

'メイン 'に' finally'を追加できませんか? – svick

+1

もう1つのオプションは['AssemblyLoadContext.Unloading'](https://docs.microsoft.com/en-us/dotnet/core/api/system.runtime.loader.assemblyloadcontext#System_Runtime_Loader_AssemblyLoadContext_Unloading)です。 – svick

+0

これはライブラリなので、メインメソッドへのアクセスはありません – somdoron

答えて

3

あなたのコードはライブラリにあるので、ライブラリの呼び出し元に通知することができます。そうすれば、ホストはあなたに通知することを決定できます。

通常、ライブラリはプロセスグローバル状態を混乱させるものではありません。ホストされている環境についてはあまり想定してはいけません。

Taskがプロセスのシャットダウンを開始したときに完了することがあります。または、呼び出し元はライブラリ上で静的メソッドを呼び出すことができます(NotifyProcessShutdownまたはPerformProcessShutdownCleanup)。

+0

ライブラリ(NetMQ)は最初に専用スレッドを使用するときに起動しますが、手動でスレッドを終了することもできますが、ライブラリが終了するとスレッドを強制終了します。 – somdoron

+0

解決策がないので、私はユーザーによって呼び出されるクリーンアップメソッドを追加しました。 – somdoron

関連する問題