[Today I Learned] C# form_load 데이터 불러올 시 오류 해결과정

suwoncityboyyy·2023년 5월 11일
0

C#, .net

목록 보기
1/3

Thread.sleep 과 Delay
sleep : 지정된 시간(밀리초) 동안 현재 스레드를 일시 중단.
사용법

Thread.Sleep(2000);

하지만 굳이 스레드까지 중단 안하고 정지를 시킴으로써 성능면에서 더 우수한 퍼포먼스를 낼수 있다.(Delay를 주기)
Delay

    public void Delay(int ms)
    {
      DateTime dateTimeNow = DateTime.Now;
      TimeSpan duration = new TimeSpan(0, 0, 0, 0, ms);
      DateTime dateTimeAdd = dateTimeNow.Add(duration);
      while (dateTimeAdd >= dateTimeNow)
      {
        System.Windows.Forms.Application.DoEvents();
        dateTimeNow = DateTime.Now;
      }
      return;
    }

Delay 메서드를 만든 후 받을 인자를 int로 준다.
form load가 켜지는 시점에서 데이트타임을 받아오며 그 시점기준으로 파라미터에 따라 n초 딜레이를 줄 수 있다.

form_load 함수에서 메서드를 받아올 시 오류발생

private void Form1_Load(object sender, EventArgs e)
    {
      string[] arr = tmConnecter.GetCachedTagNames();
      Console.WriteLine(arr.Length);
    }

미들웨어에서 값을 받아 올 시 배열에 값이 들어오지 않는 이슈가 발생했다.
하지만 form1_load에 딜레이 Delay(n) 을 줘서 n초뒤에 로드를 함으로 써 데이터가 받아와질 수 있도록 해결 했다.

profile
주니어 개발자 기술노트

0개의 댓글