問題タブ [object-lifetime]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - クロスアプリドメイン開発を行う場合、プロキシと同じようにデリゲートに無限の生命を与えるにはどうすればよいですか?
背景オブザーバー/イベントパターン
の派生と、以下からのコードの断片を使用して、カスタムプラグインアーキテクチャを開発しました。
コードプロジェクト:プラグインマネージャー
Microsoft:AppDomains
Daniel Soltyka:シンプルなプラグイン
過去に問題がありました。各プラグインは独自のアプリドメインに読み込まれるため、お互いを表示したり、メインのアプリドメインにあるものを表示したりすることはできません(プラグイン開発者に表示したくない独自のデータがアプリケーションにあります)。メインアプリからプラグインと通信するために、新しいアプリドメイン/プラグインごとにプロキシが作成されます。問題は、5分ほどでプロキシが切断されることでした。これは、メソッドをオーバーライドしてInitializeLifetimeService()
null(参照)を返すことで簡単に解決できました。
問題
問題は今、物事の反対側にあります。メインアプリ側から各プラグインにデリゲートを送信することで、プラグイン側でコールバック関数を「登録」しています。プラグインは、メインアプリの関数を呼び出すこれらのデリゲートを呼び出すことができます。ただし、デリゲートは、上記の説明のプロキシと同じように切断されているようです。
私はこれをSOで読み、ClientSponsor.Register()
メソッドは素晴らしいように聞こえますが、パラメーターとして「MarshalByRefObject」が必要です。私は代表者なので、サイコロはありません。
プラグインプロキシのように、メインのアプリデリゲートをアプリドメイン間で接続し続ける方法を見つけたいと思います。
何か案は?
mef - MEFとWPF。怠惰な(Tの)寿命?
最初に私は初心者です
lazy()を使用してオブジェクト/クラスをインポートします
今私の質問は
1)私のオブジェクトの寿命はどれくらいですか?
2)このオブジェクトはどのように処理されますか?
3)手動で破棄された場合、MEFは後でobject.valueを発行したときにそれを再初期化できますか?
entity-framework-4 - WebアプリケーションでのRedisの最良のオブジェクトライフタイム戦略は何ですか
- Webアプリケーションのデータベース全体としてRedis(ServiceStack)を使用する予定です。
- 7.4秒で76000レコードを挿入できます。
- ただし、単一の接続を使用すると(RedisClientオブジェクトの寿命はアプリケーションです)、
- StoreではなくSetジェネリックメソッドを使用しました(パフォーマンスの大きな違い)
私はEntityFrameworkObjectContextにPer-Requestobject-life-timeを使用していました。
では、Redis(ServiceStack)用のWebアプリケーション(Asp.Net MVC)でのオブジェクトの有効期間の最善の戦略は何ですか。
または、Redisは100個のSQL Serverテーブルの成熟したプロジェクトではありません(さまざまな点で相互に関連しています)
私は完全に混乱しています..私はエンティティをDB4Oに格納することを考えています(私は怖いです'DB4oは埋め込まれています-JavaDb'スローガンも)、Redisの関係?!
また、EF4でインクルードコンセプトをサポートします。
私のプロジェクト全体には、1.000.000エンティティ、100.000.000リレーションがあります。(私は3年間のEntity Framework 1-4の経験があります)
c# - usingステートメントで宣言された変数が読み取り専用として扱われるのはなぜですか?
ブロックを使用する際の変数(myform)が読み取り専用として扱われ、関数への参照として渡そうとするとコンパイラーがエラーを発生させるのはなぜですか。
サンプルコード:
変数を使用してrefとして関数に渡すと、エラーが発生します。したがって、上記のコードはエラーを発生させます。
注:「readonly」キーワードは私の質問とは無関係です。
c# - マネージ コードのブロックの末尾にある変数はどうなりますか
ブロック終了後
ブロック内の変数はどうなりますか?
そして、このブロックの後に何が起こるか
それは明らかですか?選択したタグが間違っている場合は編集してください。質問を明確にするために編集できる場合は編集してください。
asp.net-mvc-3 - MVC 3、Unity 2 - リクエストごとのライフタイム マネージャー
http://unitymvc3.codeplex.com/で Unity MVC3 コードを使用して、 IUnitOfWork のリクエスト インスタンスごとに NHibernate セッションを作成しています。
数週間前は機能していましたが、いくつか変更を加えたところ、IUnitOfWork の有効期間が静的になったようです。
私のglobal.asax.csから:
ConfigureUnity()
私から呼び出されますApplication_Start()
HomeController コンストラクターからコードをテストします。
... IUnitOfWork は同じインスタンスに解決されますが、後続のページ要求では新しい IUnitOfWork は作成されません... しかし、コードは機能するため、何らかの方法でオブジェクトを登録/プルして静的に動作させます。
c++ - C++ でのオブジェクトの破棄
C++ でオブジェクトが破棄されるのは正確にはいつで、それはどういう意味ですか? ガベージ コレクターがないため、手動で破棄する必要がありますか? 例外はどのように発生しますか?
(注: これはStack Overflow の C++ FAQへのエントリであることを意図しています。このフォームで FAQ を提供するという考えを批判したい場合は、すべての始まりとなった meta への投稿がそれを行う場所になります。回答への回答その質問は、FAQ のアイデアが最初に始まったC++ チャットルームで監視されているため、アイデアを思いついた人にあなたの回答が読まれる可能性が非常に高くなります。)
c++ - オブジェクトの存続期間に関連します。次の問題の用語/パターン/何が存在しませんか?
GUIウィンドウのコールバッククラスを作成しようとしています。(うまくいけば)それを達成するために、私はデリゲートを使用しています。
MESSAGE_TYPEは列挙型です。
私が必要としているのは、クラスデストラクタの変更に依存しない、ある種の永続的/一定のインデックスを介して、オブジェクトが破棄されたときにマップからオブジェクトの登録を自動的に解除する何らかの方法です。
つまり、特定の署名に一致するようにコールバックを指定するため、私の計画はゼロから欠陥がある可能性があります(これらの高度なものではまだハーフブラインドでコーディングしています)。したがって、本質的に、この機能を使用するクラスにはいくつかが必要です。それに一致するメソッド、したがって、すでにそれらのルール(クラスに結合されている)に従うことを強制されています。
だから私はそれらの中に地図への参照を置くかもしれません。ただし、それだけでも、マップ内のすべてのエントリを繰り返し処理し、破棄されるオブジェクトに一致するエントリを削除する必要があります。
ですから、私が必要としているのは、ある種の自己認識定数参照ポインターインデックスのものだと思います。
そのようなものは存在しますか?それは一般的な問題であるはずだと私には感じます...
c# - MEF エクスポートファクトリー- 実行時間の長いアプリケーションを適切に破棄する方法は?
基本的に、によって作成されたインポートを破棄する簡単な方法はありExportFactory<T>
ますか? 私が尋ねる理由は、エクスポートには通常、EventAggregator など、まだ存在するものへの参照が含まれているためです。これらを何百も作成し、必要のないときに放置しておくという問題に遭遇したくありません。
ExportLifetimeContext<T>
オブジェクトを作成すると、Dispose を含むが返されることに気付きました。ExportLifetimeContext
しかし、 ViewModel のコピーを要求する ViewModel に を戻したくはないので、Value を戻します。( return Factory.Single(v => v.Metadata.Name.Equals(name)).CreateExport().Value;
)
c# - WindowsサービスメンバーにInitializeLifetimeServiceを使用することは重要ですか
InitializeLifetimeService
アプリケーションまたはサービスが実行されている限り、実行されているはずのメンバーにを設定する必要がありますか? 私自身の経験の例では、タイマーを使用していくつかのサービスを構築しましたが、タイマーは数日後に機能しなくなりました。