0


0

コンソールアプリのようなテストファイルを更新します。 しかし、どうですか?

あなたの助けが必要です! コードを実行すると、コンソールが表示され、datetime.nowが1行ずつ書き込まれますが、txt(TextFile1.txt)を開くと、 コンソールコマンドの結果が表示されません。

コンソールは黒いパッドになります

  • 22:30 2010年1月29日

  • 22:31 2010年1月29日

  • 22:32 29.01.2010

  • 22:33 29.01.2010

しかし;一方;テキストファイル(Textfile1.txt)を開くと、1つの時間結果のみが表示され、上記のような時間全体の結果が表示されます。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Timers;
using System.IO;

namespace TimerApp4
{
    class Program
    {

        static void Main(string[] args)
        {
              Timer t = new Timer(1000);
                t.Elapsed += new ElapsedEventHandler(SaniyelikIs);
                t.Start();
                Console.Read();
                t.Stop();
        }

        static void SaniyelikIs(object o, ElapsedEventArgs a)
        {
            // write a line of text to the file
            StreamWriter tw = new StreamWriter("TextFile1.txt");
            tw.WriteLine(DateTime.Now);
            Console.WriteLine(DateTime.Now + "\n");
            // close the stream
            tw.Close();

        }
    }
}

3 Answer


1


プログラムが終了するまでStreamWriterを閉じないでください。 また、TimerイベントからTextWriterにアクセスする必要があるため、パブリック変数またはプライベート変数を使用する必要があります。

private static TextWriter tw { get; set; }

static void Main(string[] args)
{
    using (tw = new StreamWriter("TextFile1.txt"))
    {
        Timer t = new Timer(1000);
        t.Elapsed += new ElapsedEventHandler(OnTimedEvent);
        t.Start();
        Console.Read();
        t.Stop();
        tw.Close();
    }

static void OnTimedEvent(object sender, ElapsedEventArgs args)
{
    // write a line of text to the file
    tw.WriteLine(DateTime.Now.ToString());
}


0


あなたの質問や問題を理解しているかどうかわかりません。 ただし、コードでは、SaniyelikIsメソッドでストリームを閉じます。 このメソッドは毎秒呼び出されるため、2回目に呼び出すと、ストリームは既に閉じられており、WriteLineは例外をスローします。


0


間違っていない場合は、ファイルをリアルタイムで表示し、そのファイルのコンソールに最新の変更を出力できるようにしますか? もしそうなら、多分あなたはあなたのためにこれを行うためにhttp://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx[FileSystemWatcher]クラスを使用して調べる必要がありますか?

これが役立つことを願っています、よろしく、トム。