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

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

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

全過去ログを検索

<< 0 >>
■7274  Re[2]: ログオフ時にタスクから起動したアプリケーションのアイコン
□投稿者/ ちゃっぴ -(2007/09/03(Mon) 12:31:10)
>
    No7273 (ちゃっぴ さん) に返信
    > Logon していなければ、desktop session が無いのですから NotifyIcon が扱えないのは当然です。

    <補足>
    同じ user が owner の desktop session が存在しない(logon していない)状態では、TaskScheduler の job は "Batch" という logon を行います。この logon type は desktop session を持っていません。

    通常の logon は "INTERACTIVE" という logon type です。
記事No.7268 のレス /過去ログ18より / 関連記事表示
削除チェック/

■29496  ログイン画面について
□投稿者/ C#初心者 -(2008/12/10(Wed) 12:17:44)

    分類:[C#] 

    只今VS2008とSQLServer2005を使用してログイン画面を作成しているのですが、
    CombBox1にはDBのtable1のnumberを、CombBox2にはDBのtable2のnameを入れています。

    table1とtable2には共にnumber列があり、主キーになっています。
    CombBox1のnumberとCombBox2のnameが一致したらログイン出来るようにしたいのですが、
    どのようにコードを書けばよいのか教えていただけますでしょうか?
親記事 /過去ログ53より / 関連記事表示
削除チェック/

■47952  Re[16]: JPEG画像からバーコードを読んで数字を取り出したい
□投稿者/ なちゃ -(2010/03/18(Thu) 11:24:21)
    まあ個人利用ならどうでも良いかも知れませんが、
    外部サービスに依存するのはそれだけでリスクです。
    また、もし本のバーコード部分以外も画像に含まれてるなら、
    それを外部サービスに送信していいか、
    外部サービスに本の情報を送信することになるけどそれは問題ないのか、外部サービスの信頼性、信用度はどの程度なのかなど、
    気になる点はいろいろあったりはします。
記事No.47881 のレス /過去ログ81より / 関連記事表示
削除チェック/

■48189  Re[6]: ファイルのコピー・移動について
□投稿者/ 中の上くらいの初心者 -(2010/03/26(Fri) 16:33:10)
    No48187 (.SHO さん) に返信
    > 指定すればいいじゃん。
    > コピー先にファイルが存在してる必要はないですよね。
    System.IO.File.Copy(ファイルが存在するところのパス, 保存・移動先のディレクトリ(←ココが一番の謎です。))
    これが使えるってことですか。
    ,の後がディレクトリ名ではいけないみたいなんですけど?

    > 一覧を作るコードは組めたんじゃないの?
    すみません、組めてました。
記事No.48181 のレス /過去ログ81より / 関連記事表示
削除チェック/

■83095  Re[1]: visual studioでツールボックスが表示されない
□投稿者/ babaP -(2017/03/06(Mon) 17:53:29)
    後者はBlend for Visual Studio が立ち上がっているようです。
記事No.83094 のレス /過去ログ142より / 関連記事表示
削除チェック/

■88790  SoundPlayerの破棄
□投稿者/ B.B -(2018/09/28(Fri) 08:16:14)

    分類:[C#] 

    Windows10
    Visual Studio 2017
    C#

    wavファイルを読み込んで音を鳴らすのに以下のようにしていました。
    using (var player = new SoundPlayer(soundFile)) player.Play();

    次のように変数に入れなくとも鳴ることに気づきました
    new SoundPlayer(soundFile).Play();

    この場合はDisposeしなくともすぐ破棄されるのでしょうか?
    よろしくお願いします。
親記事 /過去ログ153より / 関連記事表示
削除チェック/

■88791  Re[1]: SoundPlayerの破棄
□投稿者/ 774RR -(2018/09/28(Fri) 09:30:52)
    参照カウント0のオブジェクトは gc がそのうち回収する、としか言えないので
    ・すぐ破棄されることもある
    ・ずっと残ることもある(数分とか数時間とか)
    事前には、上記どちらもありうるとしか言えないっす。

    実用上はいつ破棄されてもそんなに差支えないレベルの話だと思う。
    IDisposable ってことはクラス内部にアンマネージリソースがあるわけだけど、
    それを閉じるタイミングが重要(プログラマが意識しないといけない)なのであれば using が必須
    ほぼどうでもよいなら using しなくても問題ないっす。
    SoundPlayer はサウンドリソースを完全に読み込んでから演奏するとあるので、
    サウンドファイルが Play() 時点でクローズ済みであることは期待してもよさそう。

    オイラ的には提示ソースコードに関して次のことのほうが気になるっす。
    - Play() で非同期演奏開始、
    - その終了を待たずに即 Dispose 開始
    - Dispose() は演奏終了まで待ってくれるのか? はたして最後まで演奏されるのか?

    PlaySync() だったら気にならないとこだけど






記事No.88790 のレス /過去ログ153より / 関連記事表示
削除チェック/

■88792  Re[1]: SoundPlayerの破棄
□投稿者/ 魔界の仮面弁士 -(2018/09/28(Fri) 09:54:06)
    No88790 (B.B さん) に返信
    > using (var player = new SoundPlayer(soundFile)) player.Play();

    PlaySync メソッドではなく、
    Play メソッドを使っている場合の話ですね。


    > この場合はDisposeしなくともすぐ破棄されるのでしょうか?

    そもそも SoundPlayer クラスは、Dispose をオーバーライドしていません。継承しているだけ。


    実験用に、こんな感じのクラスを用意しておき、

    class WavePlayer : System.Media.SoundPlayer {
      internal WavePlayer(string soundLocation) : base(soundLocation) { }
      internal WavePlayer(System.IO.Stream stream) : base(stream) { }
      protected override void Dispose(bool disposing) {
        System.Diagnostics.Debug.WriteLine($"SoundPlayer.Dispose({disposing})");
        base.Dispose(disposing);
      }
    }

    class WaveStream : System.IO.FileStream {
      internal WaveStream(string file) : base(file, System.IO.FileMode.Open, System.IO.FileAccess.Read) { }
      protected override void Dispose(bool disposing) {
       System.Diagnostics.Debug.WriteLine($"Stream.Dispose({disposing})");
       base.Dispose(disposing);
     }
    }


    呼び出し側をこんな感じに変更してみると、動作の違いが見えてくるかも。


    private string soundFile = @"C:\windows\media\Alarm01.wav";

    private void button1_Click(object sender, EventArgs e)
      => new WavePlayer(new WaveStream(soundFile)).Play();

    private void button2_Click(object sender, EventArgs e) {
      using (var player = new WavePlayer(new WaveStream(soundFile))) player.Play();
    }

    private void button3_Click(object sender, EventArgs e) {
      using (var wave = new WaveStream(soundFile))
      using (var player = new WavePlayer(wave))
      {
        player.Play();
      }
    }
記事No.88790 のレス /過去ログ153より / 関連記事表示
削除チェック/

■88799  Re[2]: SoundPlayerの破棄
□投稿者/ B.B -(2018/09/28(Fri) 13:39:05)
    774RRさん、魔界の仮面弁士 さん返信ありがとうございます。

    参照がなくなれば gc がそのうち回収する件、理解いたしました。

    >- Play() で非同期演奏開始、
    >- その終了を待たずに即 Dispose 開始
    Dispose後にメッセージボックスを表示させても最後まで演奏されてます。

    サンプルコードありがとうございます。
    Disposeする意味がない感じです、ありがとうございました。
記事No.88790 のレス / END /過去ログ153より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -