2017-04-26 6 views
0

Windowsサービスのタイマーに奇妙な問題があります。私の最初のWindowsサービスなので、開始するには、10秒ごとに.txtファイルに書き込むサービスを作成することに決めました。 私はタイマーを追加しますが、タイマーが起動しないようです。 私はどこが間違っているのか理解できるように助けてくれますか? ここに私のコード:タイマーとWindows Serice c#

namespace testtimer 
{ 
    public partial class TestTimer : ServiceBase 
    { 
     public TestTimer() 
     { 
      InitializeComponent(); 
      timer.Interval = 10000; 
      timer.Enabled = true; 
     } 

     protected override void OnStart(string[] args) 
     { 
      timer.Start(); 
     } 

     protected override void OnStop() 
     { 
     } 

     private void timer_Tick(object sender, EventArgs e) 
     { 
      string date = System.DateTime.Now.ToString(); 
      StreamWriter wr = new StreamWriter(@"C:\Users\xxx\Desktop\Test\testtimer.txt", true); 

      wr.WriteLine("\n" + "The Time is:" + "\t" + date); 
      wr.Close(); 
     } 
    } 
} 

私は間違っていますか?あなたの助けのための

おかげでたくさん:)

+2

timer.Tick + = timer_Tick。おそらく? – linuxrocks

答えて

1

あなたはWindows.Formsタイマー(あなたがデザインサーフェイスにドラッグすることを部品1を、)を使用している推測しています....これは、「ウィンドウ」と「メッセージを必要とします実際のタイマーティックイベントを処理/受信できるようにするために「ループ」する必要があります。

NTサービスでは、ウィンドウがありません。ちょっとしたコードで、SCM(Service Control Manager)によって呼び出されるエントリポイントがあります。

スレッドを使用する別の種類のタイマーを使用する必要があり、関数をコールバックします。

+0

ありがとう!これが私がWindowsフォーム上で同じ機能をテストしていて、働いていて、サービスしていなかった理由です。あなたの時間とあなたの助けに感謝します。).... Patrick –

関連する問題