두 개의 창이 있습니다. 각 조정 된 시간 간격으로 두 번째 양식을 열어야합니다. 그리고 두 번째 양식은 지정된 초 동안 표시해야합니다. mainForm에서 : 두 번째 양식에서Windows Forms 타이머
public static System.Timers.Timer reminderTimer = new System.Timers.Timer();
private static void ActiveteReminder()
{
int duration = Reminder.Frequency;
reminderTimer.Interval = duration;
reminderTimer.Elapsed += new System.Timers.ElapsedEventHandler(reminderTimer_Elapsed);
reminderTimer.AutoReset = false;
reminderTimer.Start();
}
static void reminderTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
ReminderForm reminderForm = new ReminderForm();
reminderForm.Show();
if (Reminder.ReminderStatus == ReminderStatusEnum.ReminderStatus_Active)
reminderTimer.Start();
else
reminderTimer.Stop();
}
: 두 번째 폼을 닫으려고 할 때
public System.Timers.Timer reminderTimer = new System.Timers.Timer();
private void ActivateTimer()
{
int duration = Reminder.Duration;
reminderTimer.Interval = duration;
reminderTimer.AutoReset = false;
reminderTimer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
reminderTimer.Start();
}
void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
reminderTimer.Dispose();
this.Close();
}
나는 오류를 다음있어 : "크로스 스레드 작업을 유효하지 : 다른 스레드에서 액세스 제어 'reminderForm' 생성 된 스레드보다 "
어떻게 해결할 수 있습니까?
입니까? Reminder 클래스의 코드를 게시하십시오. –