Page History
...
akka.persistence 를 설치하여, Actor 영속성에 관련된 기능을 제공 받습니다.
c# 변경할수 없는 리스트
메시지 보증에 있어서, 변경할수 없는 ( 전송한 이후 중간에 누가 변경할수 없는) 제약조건은 중요합니다.
이것은 여러스레드가 접근을 하여도 값을 변경할수 없으니 , 스레드안정성을 보장할수 있으며
처음 발생한 메시지가 어떠한 동작에의해 변이 될수 없음을 뜻합니다.
akka.net 에서는 이러한 보증을 위해 .net 의 ImmutableList를 활용합니다.
link : https://msdn.microsoft.com/ko-kr/library/dn467185(v=vs.111).aspx
c# 7.0 패턴 매칭 사용
Class에대해 조금 고급화된 패턴 매칭을 사용하기위해 ( VS-2015사용중이라면)
C# 7.0 에서 추가된 패턴매칭을 사용하겠습니다. ( if,switch 를 좀더 유연하게 클래스와 매칭하여 사용)
아래 사용방식은 if문으로 늘려도 상관없습니다. -switch문을 단순하게 하는것은 Akka의 목표는 아니지만 메시지처리를 단순화하는것은 Akka의 목표에 포함이됩니다.
| Code Block | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
switch (message)
{
case Cmd cmd:
break;
case "snap":
break;
case "print":
break;
}
switch (shape)
{
case Square s when s.Side == 0:
case Circle c when c.Radius == 0:
return 0;
case Square s:
return s.Side * s.Side;
case Circle c:
return c.Radius * c.Radius * Math.PI;
default:
throw new ArgumentException(
message: "shape is not a recognized shape",
paramName: nameof(shape));
}
|
...
