C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 >>
■12156  Re[1]: C#エラーについて
□投稿者/ επιστημη -(2008/01/01(Tue) 10:44:45)
>
    2008/01/01(Tue) 10:45:33 編集(投稿者)

    - お願いだから投稿モードを"図表モード"にしてください。
    - エラーメッセージは"どの行で出たのか"が大事。出し惜しみしないで。

    > using System;
    > using System.Collections.Generic;
    > using System.ComponentModel;
    > using System.Data;
    > using System.Drawing;
    > using System.Text;
    > using System.Windows.Forms;
    >
    > namespace MyMemo
    > {
    > public partial class Form2 : Form
    > {
    > public Form2()
    > {
    > InitializeComponent();
    > }
    > private void Form2_Load(object sender, EventArgs e)
    > {
    > }
    > private void button1_Click(object sender, EventArgs e)
    > {
    > }
    > private void textBox1_TextChanged(object sender, EventArgs e)
    > {
    > }
    >
    > } /*************************** ココでForm2が終ってますょ? ******************/
    >
    > public Form1 Form1Instance;//Form1のインスタンス
    >...
記事No.12154 のレス /過去ログ26より / 関連記事表示
削除チェック/

■19438  Re[9]: わんくま勉強会のセッションのネタ希望
□投稿者/ ネタ好き -(2008/05/23(Fri) 06:25:18)
    思いついたことを書きなぐります。

    ・データ中心アプローチの演習(お客の要望からテーブル設計)
    ・移植性の高いプログラミング法。
    ・グーグル利用術。
    ・新入社員のためののマナー講座。
    ・UNIX精神とWindows精神の対比。
記事No.19260 のレス /過去ログ38より / 関連記事表示
削除チェック/

■44044  Re[3]: 別WEBサイトをホップアップで表示するとエラーになる
□投稿者/ もりお -(2009/11/25(Wed) 21:23:51)
    No43897 (QQ さん) に返信
    > ホップアップ
    ポップアップ, popup です。
    (英辞郎で hopup を検索したらシャブと表示されました。)
    
    > Awebページ から Bwebページ のホップアップは出来ないのでしょうか?
    最初の質問文に「Bwebサイトは表示されるのですが」と記述されていますので
    ポップアップはできているのではないでしょうか。
    
    > javascript で直接ホップアップしないと駄目なのでしょうか?
    駄目と判断する理由は「...に接続できませんでした」のメッセージが表示されるからでしょうか。
    ご掲示いただいたコードだけでは再現条件がわからないので、現段階で結論を求めるのは無茶な気がします。
    接続不可ページになる原因の特定、回避策の検索を行った後に結論を下してはいかがでしょうか。
    
    原因を特定しやすいよう目的の動作に必要のないコードを極力排して
    挙動を確認してみてはいかがでしょうか。
    ポップアップに必要なコードはこれで十分かと思われます。
    ClientScript.RegisterStartupScript(Me.GetType(), "popup", "window.open('PopupB.aspx', null)", True)
    
記事No.43830 のレス /過去ログ75より / 関連記事表示
削除チェック/

■91518  Re[2]: メモリリークに関して
□投稿者/ kiku -(2019/07/03(Wed) 09:14:41)
    No91515 (魔界の仮面弁士 さん) に返信
    > ■No91509 (kiku さん) に返信
    >>※通常はControls.Addしているのでフォーム解放時にdisposeされる認識
    >
    > .NET Framework の場合、Control.Dispose(bool) メソッド内で
    >
    >  For i = 0 To controlCollection.Count - 1
    >   Dim control As Control = controlCollection(i)
    >   control.Parent = Nothing
    >   control.Dispose()
    >  Next
    >
    > に相当する処理が行われていますね。
    > https://referencesource.microsoft.com/#System.Windows.Forms/winforms/Managed/System/WinForms/Control.cs,6040
    >
    >
    > ところが .NET Compact Framework の実装については、上記に相当する処理を見つけることができませんでした。
    > (一応 Dispose 時には、自身のハンドルを AGL.DLL の 序数2 (Destroy API) に渡しているようですが…)

    回答ありがとうございます。
    なんと、これが直接的な原因みたいですね。
    .NET Compact FrameworkのControl.Disposeのソースは、
    .NET Frameworkのように閲覧可能なのでしょうか?
    もし可能ならURL教えて頂けませんか?
    自分の目でも確認したいです。
記事No.91509 のレス /過去ログ158より / 関連記事表示
削除チェック/

■91520  Re[3]: メモリリークに関して
□投稿者/ 魔界の仮面弁士 -(2019/07/03(Wed) 13:17:52)
記事No.91509 のレス /過去ログ158より / 関連記事表示
削除チェック/

■91523  Re[4]: メモリリークに関して
□投稿者/ kiku -(2019/07/03(Wed) 16:50:44)
    No91520 (魔界の仮面弁士 さん) に返信
    > 2019/07/03(Wed) 13:23:45 編集(投稿者)
    >
    > ■No91509 (kiku さん) に返信
    >>※通常はGCで回収されると思っているのですが、
    >
    > .NET Compact Framework の GC は、コンパクションありのマーク・アンド・スイープ GC ですが、
    > .NET Framework の GC は 世代別 GC 実装であり、そもそも管理方法からして別物だそうな。
    > 追記でこちらも。
    > なお、下記の「コンカレント GC」は、docs.microsoft.com では
    > 「同時実行ガベージ コレクション」と訳されているようです。
    > http://www.stprec.co.jp/ceblog/2012/05/14/

    ありがとうございます。
    助かります。

    > ■No91518 (kiku さん) に返信
    >>.NET Compact FrameworkのControl.Disposeのソースは、
    >>.NET Frameworkのように閲覧可能なのでしょうか?
    >
    > いいえ。

    残念。
    実機で確認するしかなさそうです。



    Labelであるlbl_serialnumberのDisposeを実行した場合、
    lbl_serialnumber.FontのDisposeが実行されるのかどうかの
    確認ができていない状況です。
    PANG2さんからご紹介頂いたWeakReferenceを使ってみたのですが、
    うまく判断できないように見えました。
    Fontを継承したクラスを作ってDisposeが呼ばれることを
    検証しようとしたのですが、Fontは継承禁止のクラスのようで
    この方法での確認ができませんでした。

    困りました。
記事No.91509 のレス /過去ログ158より / 関連記事表示
削除チェック/

■91529  Re[3]: メモリリークに関して
□投稿者/ 魔界の仮面弁士 -(2019/07/03(Wed) 19:14:23)
    No91518 (kiku さん) に返信
    >> For i = 0 To controlCollection.Count - 1
    >>  Dim control As Control = controlCollection(i)
    >>  control.Parent = Nothing
    >>  control.Dispose()
    >> Next
    >> .NET Compact Framework の実装については、上記に相当する処理を見つけることができませんでした。
    > なんと、これが直接的な原因みたいですね。

    Control.Dispose が上記を実装していれば、
    Form1 が Dispose される時に、Controls が再帰的に列挙され、
    Panel や Label といった子(あるいは子孫)コントロールも
    連動して解放されるはずなのですけれどね。


    とはいえ、GC 管理の仕組みがそもそも異なるので、
    .NET Framework 版との単純な比較はできません。
    (ソースコードは非公開ですし、逆アセンブルはライセンス上禁じられている…)

    実際 CE においても、親 Form が Dispose されれば、その配下のコントロール群も
    Dispose されることを確認できました。
    とはいえ、子コントロールの Dispose が確実に呼ばれているのか、
    たまたま GC されただけなのかまでは分かりません。

    一応、Dispose(False)時は、ApplicationThreadContext のファイナライズキューへの
    登録っぽい処理が行われると聞いたことがありますが、詳しいことは分からないです。


    CE 環境は Application.OpenForms でキャッシュされることが無いとは言え、
     (1) VB 特有の「My.Forms.フォーム名」プロパティでキャッシュされることはある
     (2) Form 右上の×を押しても Minimize されるだけ(Close/Dispose されるとは限らない)
    ということで、Dispose が呼ばれにくい状況に陥りやすそうではありますね。



    あと、経験則的なところで言えば、.NET Compact Framework 環境の場合、
    オブジェクトの使用後は、参照変数に Nothing 代入を積極的に行った方が良いみたいです。


    [宇宙仮面の研究室] - [Compact Framework のメモリ管理]
    https://uchukamen.wordpress.com/2007/01/23/compact-framework-%e3%81%ae%e3%83%a1%e3%83%a2%e3%83%aa%e7%ae%a1%e7%90%86/

    [SWK623] - [[.NET] WindowsMobile上のC#アプリのメモリリークを解決せよ!]
    https://swk623.com/2009/03/16/net-windowsmobile%E4%B8%8A%E3%81%AEc%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AE%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%AF%E3%82%92%E8%A7%A3%E6%B1%BA%E3%81%9B%E3%82%88%EF%BC%81/

    [スラド] - [#1411305]
    https://srad.jp/comment/1411305


    基本的には、変数のスコープを抜ければ GC 対象にはなりそうですが、
    Module / Shared 等で保持されたインスタンスや、
    メインフォームのフィールド変数がもつ参照の場合は、
    変数の寿命が長くなるので、自分で管理するしか無さそう。
記事No.91509 のレス /過去ログ158より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -