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

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

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

全過去ログを検索

<< 0 >>
■4116  Re[12]: ファイルを開いたボタン
□投稿者/ 中博俊 -(2006/06/01(Thu) 10:43:53)
>

    分類:[C#] 

    きついこと言うけど・・・

    とりあえず試行錯誤しているのはわかりますが、あまりにも基礎がない状況ではネット上では教えられません。
    そこはあなたの上司がやる仕事です。

    とりあえず基本的な本を1冊読破しましょう。

    座学は大事ですよ。


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

■34750  Re[4]: 文字列変換
□投稿者/ HiJun -(2009/04/08(Wed) 11:44:57)
    1.TextBoxの値が数値変換できるかどうかは、IsNumericで判定して下さい。
    2.TextBoxの入力を制限したいのであれば、TextBoxのKeyDownイベントなどで
    入力されたキーがOKかどうかを判定して下さい。

    という回答でいいですか?
記事No.34743 のレス /過去ログ60より / 関連記事表示
削除チェック/

■91306  受信イベントでReadExistingがタイムアウト
□投稿者/ ゆ牛 -(2019/06/14(Fri) 14:53:06)

    分類:[.NET 全般] 

    Data&#8203;Receivedイベント内でReadExistingメソッドが
    タイムアウトすることがWindowsのイベントログに残りました。
    現象を確認しようとしていますが再現がさせられません。
    ご指導ください。

    ■通信概要
    相手局から送られるデータを受け取り処理します。
    データは$で始まりCR(0Dh)で終わる文字列。
    長さはまちまちで3〜20バイト程度。
    送られる間隔もまちまちで100〜200ms。
    通信設定:115200bps,8bit,1stop,NoParity

    ■受信処理
    private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
    {
    data = ((SerialPort)sender).ReadExisting(); // TimeoutException発生箇所

    // dataの処理(略)
    }

    ■推定要因
    何らかの理由でDataReceivedイベントに遅れが生じ
    バッファに溜まった複数のデータをReadExistingで処理した。
    そうすると、次回DataReceivedが呼ばれたときには
    バッファにデータが残っておらずTimeoutExceptionが発生する。
    という筋書きです。

    ■試したこと

    // 「DataReceivedイベントの遅れ」を強制的に生じさせるため
    // DataReceivedを抜ける前にDelayを追加
    private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
    {
    data = ((SerialPort)sender).ReadExisting(); // ここでTimeoutException発生

    // dataの処理(略)

    Thread.Sleep(1000); // Delay
    }

    ■結果
    現象再現しませんでした。
    ReadExistingで複数データの処理はされましたが
    次のイベントが入ってきません。
    上記考えは間違っていますでしょうか?
    ほかに考えられる要因はありますでしょうか?
    よろしくお願いします。

    ■環境
    Visual Studio 2010
    .NET Framework 4

親記事 /過去ログ158より / 関連記事表示
削除チェック/

■91586  Re[20]: メモリリークに関して
□投稿者/ 魔界の仮面弁士 -(2019/07/10(Wed) 16:37:37)
    No91585 (shu さん) に返信
    > C#はswitchでこの要件を満足するのは厳しいと認識しております。
    > 一応次のようにすれば可能

    C# の言語仕様的には一応、C# 7.0 以降で
    「型による分岐」がサポートされるようになっていたりします。

    今回は VS2008 (C# 3.0) なので使えないですが…。


    foreach (Control c in Controls )
    {
     switch (c)
     {
      case System.Windows.Forms.Label _:
      case System.Windows.Forms.TextBox _:
       c.Font.Dispose();
       c.Dispose();
       break;
     }
    }

    // ----------------

    foreach (Control c in Controls )
    {
     switch (c)
     {
      case System.Windows.Forms.Label lbl:
       lbl.Font.Dispose();
       lbl.Dispose();
       break;
      case System.Windows.Forms.PictureBox pic:
       pic.Image?.Dispose();
       pic.BackgroundImage?.Dispose();
       pic.Dispose();
       break;
     }
    }

    ただし、型による分岐はジャンプ命令に変換されないので、
    内部的には if 分岐と変わらなくなりますね。
記事No.91509 のレス / END /過去ログ158より / 関連記事表示
削除チェック/

■91588  Re[21]: メモリリークに関して
□投稿者/ kiku -(2019/07/11(Thu) 08:49:57)
    No91586 (魔界の仮面弁士 さん) に返信
    > foreach (Control c in Controls )
    > {
    >  switch (c)
    >  {
    >   case System.Windows.Forms.Label _:
    >   case System.Windows.Forms.TextBox _:
    >    c.Font.Dispose();
    >    c.Dispose();
    >    break;
    >  }
    > }

    こんな風にかければ良かったんですが、
    CompactFramework3.5なので><;
記事No.91509 のレス / END /過去ログ158より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -