2013-02-22 17 views
0

Я пишу консольную программу VB, которая будет запускать функцию в определенное время суток. Это то, что я до сих пор.Проверка TimeofDay на значение appsetting

Sub Main() 
    Do 
    Dim backupTime As String 

    backupTime = My.Settings.backupTime 


    While TimeOfDay = backupTime 
     Threading.Thread.Sleep(2000) 
    End While 


    backup() 
    loop 
End Sub 

«BackUpTime», который идет речь хранится в файле App.Config

<userSettings> 
    <ZipAJob_Timed.My.MySettings> 
     <setting name="backupTime" serializeAs="String"> 
      <value>#01:59:00 PM#</value> 
     </setting> 
    </ZipAJob_Timed.My.MySettings> 
</userSettings> 

Проблема заключается в том, что «Do While» сдержек цикла каждые 2 секунды для «TimeOfDay» для соответствия «backupTime». Но это может привести к тому, что программа не работает, потому что она пропустила матч на 2 секунды. Поэтому либо мне нужно, чтобы он игнорировал секунды, либо имел только TimeofDay.minutes/hours и backupTime.minutes/hours.

Я изучил Parsing .. но не совсем уверен, где я должен начать.

+0

Считаете ли вы, что приложение, которое выполняет задачу только один раз и завершает работу, затем добавляет ее как запланированную задачу (используя планировщик заданий под управлением компьютерами в окнах)? –

+0

Да, это легкий выход. Я пытаюсь узнать что-то новое. – MaylorTaylor

ответ

2

Почему бы вам просто не использовать < вместо =?

While TimeOfDay < backupTime 
    Threading.Thread.Sleep(2000) 
End While 

Но вместо цикла я либо использовал бы Таймер, либо Windows-задачу, которая начинается в заданное время.

+0

Это приложение VB Console, поэтому я не уверен, что Timer - это опция. И, как я сказал Стивену, я просто хочу попробовать что-то новое. Я все еще зеленый на всем этом VB, поэтому я просто пытаюсь сделать все как угодно – MaylorTaylor

+0

«System.Windows.Forms.Timer» не будет вариантом, но 'System.Timers.Timer' будет отличный вариант. –

+0

@MaylorTaylor: Я настоятельно рекомендую установить «Option Strict» в положение ON. Вероятно, вы, вероятно, получите много ошибок компилятора, но вы научитесь быстрее. Затем вы должны изменить тип настройки из строки на «TimeSpan». http://social.msdn.microsoft.com/Forums/en-US/csharpide/thread/be60552d-d155-449d-b135-4770c5aa271c/ –

Смежные вопросы