2011-07-10 11 views
1

カスタムオペレーション(アプリケーションレベル)を一定の間隔で実行するための最適なアーキテクチャは何ですか?タイムリーにオペレーションを実行

  • スタティッククラスを定義し、その中にタイマーを定義し、間隔を設定します。タイマーのチックイベントで操作を実行:少し汚れていて信頼性が低いようです。

  • Windowsサービスを定義し、サービス内の操作を処理します。信頼性がありますが、はるかに多くの作業が必要です。コードの行数を減らしてより簡単なソリューションを作成することをお勧めします。また、これにはホストシステムへのアクセスが必要です(共有ホスティングの場合は該当しません)。

このような作業にはベストプラクティスがありますか?

+0

ホストされている場合、唯一の方法はページヒットに依存しているため、実際に正確なタイマーを取得することはできません。 –

答えて

2

コンソールアプリケーションを作成し、Windowsタスクスケジューラを使用します。

1

(1)解決策の重大な問題の1つは、PCを再起動すると数日後にスイッチオフ/切り替えを行うとアプリを再起動する必要があるということです。

void InstallMeOnStartUp() 
    { 
     try 
     { 
      Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true); 
      Assembly curAssembly = Assembly.GetExecutingAssembly(); 
      key.SetValue(curAssembly.GetName().Name, curAssembly.Location); 
     } 
     catch (Exception ex) 
     { 
      // 
     } 
    } 

起動時にインストールしてください。この組み合わせを使用すると、アプリにより多くの「信頼性」を追加できます。デバッグが簡単になり、サービスが簡単になり、サービスが簡単になります。

よろしくお願いいたします。

関連する問題