luce in altisBLUE SKY

category Photo

Blog


Thread Pool

1. Thread Pool 은 항상 BackGround Thread 로 동작한다. 2. Name 필드를 설정할수 없다. ( 쓰레드에 Name 필드는 설정이 한번만 가능 하기 때문 ) 3. Block 되는 코드를 사용하면 성능이 떨어진다. 4. Thread.CurrentThread.IsThreadPoolThread 속성으로 쓰레드 풀을 사용하는지 알 수 있다.

read more ...

New Syntax in C# 8.0

C# 8.0 에서 바뀐점 1. Defalut Interface 가 생김 interface Test { void DefalutFunc() { ..... } } 2. Using 개선 using 블럭 사용을 개선하여 아래와 같이 사용이 가능하다 public static void Test { using FileSystem test = new FileSystem("text.txt",FileMode.CreateNew); } // test Dispose 3. Nullable Reference #nullable enable : 참조 타입 변수를 null 을 대입하면 경고를 발생시킨다. (#nullable disable : 사용안함) 4. Null 병합 할당자 c# 6.0 null 병합 연산자 string s2 = s1..

read more ...

C# 8.0 Switch Expression

c# 8.0 에선 switch 확장식이 추가 되었다. ex) int n = 20; 일반적인 switch 의 사용 switch(n) { case 10 : break; default : break; } Switch Expression 사용 int s = n switch { 10 => 11, 20 => 22, 30 => 33, _=> 100 }; * _ -> default를 뜻함. *Expression 이란 하나의 값으로 계산 되는식 ( 예 : 리턴을 표기하지 않아도 하나의 값으로 예를 들어 3 * 5 같은것)

read more ...

Index & Range

C# 8.0에서의 Index. 1. "^"의 개념. (Index fromEnd 의 단축 표기법) 아래의 배열이 있다고 가정했을 때.. int a = [1,2,3,4,5,6,7]; int b = a[^2]; ^ => 뒤에서 부터 순서를 센다. 단 이때는 제로 베이스가 아님 즉 실행하면 b = 6 이 나온다. 2. Index 객체 c# 8.0부터는 Index란 개념이 생겼다. 역시 객체라 아래와 같이 선언이 가능하다 Index idx = new Index(2); ex) string a = "abcdefg"; int idx1 = 2; Index idx2 = new Index(2); char c1 = a[idx1]; char c2 = a[idx2]; 둘 다 같은 결과가 나온다. c1 = c c2 = c 그럼 I..

read more ...

2017 언리얼 서밋 프리미엄

아래 내용은 회사 컨버런스 정리글을 펌한 내용. 언리얼 엔진 4 셰이더, 더 깊이 이해하기 셰이더 언리얼의 셰이더는 USH(Unreal Shader Headers)와 USF(Unreal Shader Files)로 구성됨 HLSL 코드로 작성되는 USF는 FShaderType으로 관리됨 Global / Material / MeshMaterial 3가지 타입이 존재함 FShaderType이 컴파일되어 FShader 셰이더 인스턴스가 됨 메시특성은 VertexFactory를 통해 생성되는데, 현재는 커스터마이징 가능한 인터페이스를 제공하지 않음 머티리얼 Material의 각 노드들이 번역되면서 독립된 usf 코드로 컴파일됨 커스텀 노드는 HLSL코드를 직접 작성할 수 있는 노드지만, 코드최적화가 수행되지 못하..

read more ...