/// <summary> /// 破棄 /// </summary> private void DisposeCore() { Dispose(); _manager = null; _dotNetFriendlyControl = null; GC.Collect(); }
protected override void Dispose(bool disposing) { try { if (_handleAndWindow != null) { //ウィンドウ全終了 foreach (KeyValuePair <IntPtr, FriendlyConnectorWindowInApp> element in _handleAndWindow.Clone()) { //何らかの都合で終了に失敗するものが出ても消せるだけ消しておく //スレッドが異なるので、Invokeによって終了処理を実施する try { element.Value.Invoke((MethodInvoker) delegate { try { element.Value.RequestDispose(); } catch { } }); } catch { } } _handleAndWindow = null; } _dotNetFriendlyControl = null; } catch { } base.Dispose(disposing); }
/// <summary> /// コンストラクタ。 /// </summary> /// <param name="manager">ウィンドウ管理</param> /// <param name="dotNetFriendlyControl">.Net側処理呼び出しクラス。</param> internal FriendlyConnectorWindowInApp(FriendlyConnectorWindowInAppManager manager, DotNetFriendlyControl dotNetFriendlyControl) { _manager = manager; _dotNetFriendlyControl = dotNetFriendlyControl; }