부모글 보이기/감추기 AD BLOCK 해제 요청 이 글에는 광고가 많이 들어가 있지 않습니다. adblock을 해제하셔도 글을 읽는데 그다지 부담이 없으니 해제를 부탁드립니다. (연관된 글이 1개 있습니다.) C# 9 최상위 문에 STAThread 사용 아래와 같은 질문이 있군요, ^^ C# Top-level Statements WPF 실행 방법? ; https://forum.dotnetdev.kr/t/c-top-level-statements-wpf/799 결론 먼저 말하자면, 최상위 문(Top Level Statement)에서는, C# 9.0 - (15) 최상위 문(Top-level statements) ; https://www.sysnet.pe.kr/2/0/12406 자동 생성되는 <Main>$ 메서드에 대해 특성(Attribute)을 부여할 수 없습니다. (향후 지원할지는 모르겠지만!) 그래서 어쩔 수 없이 Thread에 Apartment를 직접 설정해 사용해야만 합니다. 이에 대해서는 이미 다음의 글 들에서 잘 다루고 있는데요, How to handle [STAThread] in C# 9 Using Top-Level Program.cs ; https://stackoverflow.com/questions/64946371/how-to-handle-stathread-in-c-sharp-9-using-top-level-program-cs Set ApartmentState on a Task ; https://stackoverflow.com/questions/16720496/set-apartmentstate-on-a-task using System; using System.Threading; using System.Threading.Tasks; using System.Windows; await StartSTATask(() => { Application app = new Application(); app.Startup += (s, e) => new Window().Show(); app.Run(); return 0; }); static Task<T> StartSTATask<T>(Func<T> func) { var tcs = new TaskCompletionSource<T>(); Thread thread = new Thread(() => { try { tcs.SetResult(func()); } catch (Exception e) { tcs.SetException(e); } }); thread.SetApartmentState(ApartmentState.STA); thread.Start(); return tcs.Task; } [이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.] [다음 글] .NET Framework: 1055. C# - struct/class가 스택/힙에 할당되는 사례 정리[이전 글] 오류 유형: 713. XSD 파일을 포함한 프로젝트 - The type or namespace name 'TypedTableBase<>' does not exist in the namespace 'System.Data' [연관 글] 오류 유형: 714. error CS5001: Program does not contain a static 'Main' method suitable for an entry point [최초 등록일: 5/2/2021] [최종 수정일: 5/2/2021] 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다. by SeongTae Jeong, mailto:techsharer at outlook.com 비밀번호 댓글 작성자 2021-10-05 10시19분 현재 이 글에 쓰인 방법 이외에, 그냥 단순하게 프로그램 초기에 다음과 같이 코딩하시면 됩니다.Thread.CurrentThread.SetApartmentState(ApartmentState.Unknown);Thread.CurrentThread.SetApartmentState(ApartmentState.STA);(확인은 안 했지만) 아마도 Unknown 옵션을 주는 경우 CoUninitialize를 호출하는 것이 아닐까... 예상해 봅니다. ^^ 정성태 ... [151] 152 153 154 155 156 157 158 159 160 161 162 163 164 165 ... NoWriterDateCnt.TitleFile(s) 1312정성태7/15/201237978Math: 9. 황금비율 증명1311정성태7/15/201230575Math: 8. C# - 피보나치 수열의 사각형과 황금 나선(Golden spiral) 그리기11310정성태7/13/201233941Math: 7. C# - 펜타그램(Pentagram) 그리기11309정성태7/13/201232168개발 환경 구성: 155. 윈도우 운영체제에서 기본적으로 사용할 수 있는 압축 해제 방법1308정성태7/3/201227472.NET Framework: 330. IEnumerator는 언제나 읽기 전용일까?11307정성태6/30/201229785개발 환경 구성: 154. Sysnet, Azure를 만나다. [5]1306정성태6/29/201230235제니퍼 .NET: 22. 눈으로 확인하는 connectionManagement의 maxconnection 설정값 [4]1305정성태6/28/201228539오류 유형: 157. IIS 6 - WCF svc 호출 시 404 Not Found 발생1304정성태6/27/201229403개발 환경 구성: 153. sysnet 첨부 파일을 Azure Storage에 마이그레이션 [3]11303정성태6/26/201228982개발 환경 구성: 152. sysnet DB를 SQL Azure 데이터베이스로 마이그레이션1302정성태6/25/201230915개발 환경 구성: 151. Azure 웹 사이트에 사용자 도메인 네임 연결하는 방법1301정성태6/20/201227255오류 유형: 156. KB2667402 윈도우 업데이트 실패 및 마이크로소프트 Answers 웹 사이트 대응1300정성태6/20/201233787.NET Framework: 329. C# - Rabin-Miller 소수 생성방법을 이용하여 RSACryptoServiceProvider의 개인키를 직접 채워보자 [1]21299정성태6/18/201234363제니퍼 .NET: 21. 제니퍼 닷넷 - Ninject DI 프레임워크의 성능 분석 [2]21298정성태6/14/201236008VS.NET IDE: 72. Visual Studio에서 pfx 파일로 서명한 경우, 암호는 어디에 저장될까? [2]1297정성태6/12/201232509VC++: 63. 다른 프로세스에 환경 변수 설정하는 방법11296정성태6/5/201229060.NET Framework: 328. 해당 DLL이 Managed인지 / Unmanaged인지 확인하는 방법 - 두 번째 이야기 [4]11295정성태6/5/201226482.NET Framework: 327. RSAParameters와 System.Numerics.BigInteger 이야기11294정성태5/27/201250595.NET Framework: 326. 유니코드와 한글 - 유니코드와 닷넷을 이용한 한글 처리 [7]21293정성태5/24/201230975.NET Framework: 325. System.Drawing.Bitmap 데이터를 Parallel.For로 처리하는 방법 [2]11292정성태5/24/201224636.NET Framework: 324. First-chance exception에 대해 조건에 따라 디버거가 멈추게 할 수는 없을까? [1]11291정성태5/23/201231554VC++: 62. 배열 초기화를 위한 기계어 코드 확인 [2]1290정성태5/18/201236481.NET Framework: 323. 관리자 권한이 필요한 작업을 COM+에 대행 [7]11289정성태5/17/201240917.NET Framework: 322. regsvcs.exe로 어셈블리 등록 시 시스템 변경 사항 [5]21288정성태5/17/201227809.NET Framework: 321. regasm.exe로 어셈블리 등록 시 시스템 변경 사항 (3) - Type Library11287정성태5/17/201230611.NET Framework: 320. regasm.exe로 어셈블리 등록 시 시스템 변경 사항 (2) - .NET 4.0 + .NET 2.0 [2] ... [151] 152 153 154 155 156 157 158 159 160 161 162 163 164 165 ...