2010-08-18 3 views
0

здесь код, какова фактическая роль таймера, другая вещь, которая, если (сохранение) срабатывает первым, если модификация не была выполнена, сервер не работает. Есть ли какое-либо отношение к потоку. .Какова роль таймера здесь

private void Dlg_Load(object sender, System.EventArgs e) 
{ 
    // Set the message. 
    if (Saving) 
     eLabel.Text = Managers.ControlStrings.GetString("Saving"); 


    // Setup to receive events. 
    Server.InfoReceived += new InfoEventHandler(Server_InfoReceived); 
    Server.Received += new ServerStateEventHandler(Server_ServerStateReceived); 

    // Start the timer to begin saving as soon as the dialog has completed setup. 
    Timer.Start(); 
} 

/// Handle the tick of the timer by stopping the timer and beginning the operation. This allows 
/// the dialog to come up fully before the operation is started; otherwise there are problems 
/// closing the dialog. 
/// </summary> 
/// <param name="sender">Timer.</param> 
/// <param name="e">Ignored.</param> 
private void Timer_Tick(object sender, System.EventArgs e) 
{ 
    string func = "Dlg.Timer_Tick"; 
    try 
    { 
     // Stop timer 
     Timer.Stop(); 

     if (Saving) 


      if (!Server.Modify()) 
      { 

      } 
    } 
} 
+3

Не означает быть задницей, но можете ли вы вернуться к своему вопросу и пересмотреть, чтобы использовать полные предложения? –

ответ

0

Прочитать комментарии в коде.

Ожидается, что все будет правильно нарисовано перед выполнением действия в событии таймера. Application.DoEvents() иногда используется для аналогичного «ожидания».

Я думаю, что интервал таймера составляет 1 миллисекунду.

+0

да, вы правы – peter

+1

ну, это взломанный шаблон, чтобы деффертировать исполнение до тех пор, пока форма не будет полностью загружена. –

0

это похоже, что это плохой способ ждать диалога быть отображения для (экономия?), чтобы сделать что-то, когда отображается диалоговое окно.

1

Единственный ключ у нас здесь есть XML комментарий:

/// Handle the tick of the timer by stopping the timer and beginning the operation. 
/// This allows the dialog to come up fully before the operation is started; 
/// otherwise there are problems closing the dialog. 

Видимо есть проблема с последовательностью инициализации. Это немного пахнет, как хак, но мы не видим достаточно кода, чтобы решить, что именно.

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