내가 아는거/WPF2018. 3. 8. 15:46

이번 건은 내가 바보짓을 한 경우인데, 혹시라도 나같은 사람이 또 있을까? 싶어서 기록합니다.


WPF 프로그래밍을 하다보면 ObservableCollection을 사용하는 경우가 많고, View와 Viewmodel의 바인딩에 편리하게 사용합니다.

그런데, 클래스에 프로퍼티를 만들때도 Collection이 필요하면 습관적으로 ObservableCollection으로 만들었죠.

아무일도 없었습니다.

그런데 성능문제가 있어서 검토하다가 발견한게...

 ObservableCollection OCollection = new ObservableCollection();
 List ListText = new List();
 private void Button_Click(object sender, RoutedEventArgs e)
 {
     for (int i = 0; i < 1000000; i++)
     {
         OCollection.Add(i.ToString());
     }

     for (int i = 0; i < 1000000; i++)
     {
         ListText.Add(i.ToString());
     }
 }

ObservableCollection과 List에 1000000개의 아이템을 넣어봤더니, 속도가 2배정도 차이가 납니다.

필요없는곳에 ObservableCollection을 남발하지 맙시다 ㅜㅜ

Posted by zinzza

프로그래밍 방식으로 .resx 파일 작업한 프로젝트에서 

제목과 같은 오류가 발생하는 경우...


지금 다니는 회사의 경우 해외 개발팀과 협업을 하는데 해외 개발팀에서 작업한 프로젝트에서 

"사용자 지정 도구 ResXFileCodeGenerator가 입력 파일 ***.resx에 대한 출력을 생성하지 못했지만 특정 오류가 기록되지는 않았습니다. " 


라는 오류가 발생. 


오류메세지로 검색해 봤지만 결과가 없었고...

오류메세지를 영어로 검색하기 위해 비주얼 스튜디오를 영문으로 변경해서 빌드한 결과... 빌드가 됨-_-;


정리.

해외 샘플을 받거나 해외 개발팀이랑 협업을 하는 경우, 위의 에러메세지를 만나게 된다면

비주얼 스튜디오 도구->옵션, 환경->국가별 설정 으로 가서 English를 선택 후 빌드하면 해결.



한번 빌드하고 나면 다시 비주얼 스튜디오를 한글로 변경해도 문제 없이 빌드 가능.




Posted by zinzza