Lock statement patterns

6개의 좋아요

Lock 클래스는 알고 있었는데 성능 차이가 이정도인줄 몰랐네요.
앞으로는 Lock 클래스를 사용하는 걸로…

PS : 혹시 Lock 클래스를 사용하는데 주의 사항이 있을까요? 무조건 Lock Object 대신 써도 문제 없을까요?

2개의 좋아요

.NET 9에 나올 예정인 새로운 클래스 같습니다.

아직은 없는 게 맞아서 그냥 object 쓰시면 될거 같네요.

정보도 많이 없네요.

core/release-notes/9.0/preview/preview1/api-diff/Microsoft.NETCore.App/9.0-preview1_System.Threading.md at main · dotnet/core (github.com)

일단 이렇게 생긴거 같습니다.

 namespace System.Threading {
+    [System.Runtime.Versioning.RequiresPreviewFeaturesAttribute]
+    public sealed class Lock {
+        public Lock();
+        public bool IsHeldByCurrentThread { get; }
+        public void Enter();
+        public Lock.Scope EnterScope();
+        public void Exit();
+        public bool TryEnter();
+        public bool TryEnter(int millisecondsTimeout);
+        public bool TryEnter(TimeSpan timeout);
+        public ref struct Scope {
+            public void Dispose();
+        }
+    }
 }
1개의 좋아요

이걸 찾아보면서 아래 링크도 발견했는데, MS가 정말로 Windows Forms에 대해 MVVM 패턴을 완성 시키려는 목적이 보이는 거 같습니다.

Behavior 클래스 (System.Windows.Forms.Design.Behavior) | Microsoft Learn

이름만 같은건가 생각했는데 예제를 보니 WPF의 그 Behavior네요

image

아 새로운 기능이 아니군요…원래 있던거네…;;

관련 내용

1개의 좋아요

아이디어 자체는 과거에 이미 제시되었던거라고 말씀하시는건가요??

소스 브라우저 보니까 지금도 있긴하군요

Lock.cs (dot.net)

20년에 최초 제안되었고, 23년 5월에 승인되어 .NET 9에 포함된 기능이라 보면 될 것 같습니다.

1개의 좋아요

아 소스 브라우저에 보이는건 현재 .NET9-preview1 상태까지 보여주는 건가보군요…

감사합니다~