c#
-
C# - RichTextBox 자동 스크롤 하기C# 2022. 2. 22. 16:03
for (int i = 0; i < 10000; i++) { richTextBox1.Invoke(new Action(delegate () { //richTextBox1 += i.ToString(); 로 작성시 자동 스크롤 안됨 richTextBox1.AppendText(i.ToString()); richTextBox1.ScrollToCaret(); })); } .ScrollToCaret();를 적용하여도 richTextBox1 += i.ToString(); 이런식으로 작성하면 스크롤이 안된다. 자동 스크롤 기능을 구현하기 위해서는 AppendText()를 사용해줘야 한다는 것을 알게 됐다.
-
Visual Studio: Warning IDE0006 Error encountered while loading the project 경고 해결C# 2022. 2. 11. 09:55
[c# - 경고 IDE0006 프로젝트를로드하는 동안 오류가 발생했습니다.] Close Visual Studio Open a Visual Studio Developer Command Prompt Set environment variable “TraceDesignTime” to true (set TraceDesignTime=true) Delete .vs directory/.suo file Restart VS from the command prompt you set the environment varaible (devenv) Open the solution Check 'C:\Users\nitesh dandekar\AppData\Local\Temp\HelloWorld_*.designtime.log' and l..
-
C# - CancellationTokenC# 2022. 1. 24. 16:33
[CancellationToken] - CancellationToken은 비동기 작업을 취소하는 용도로 사용 - 작업 취소와 관련된 타입은 CancellationTokenSource 클래스와 CancellationToken 구조체 - CancellationTokenSource 클래스는 Cancellation Token을 생성하고 Cancel 요청을 Cancellation Token들에게 보내는 일을 담당 - CancellationToken은 현재 Cancel 상태를 모니터링하는 여러 Listener들에 의해 사용되는 구조체 [CancellationToken 사용 절차] 1. CancellationTokenSource 필드를 선언 -> private CancellationTokenSource cancelT..
-
c# Error - NullReferenceExceptionC# 2022. 1. 24. 15:04
NullReferenceException was unhandled by user code An exception of type 'System.NullReferenceException' occurred in FleckWebsocketServer.exe but was not handled in user code Additional information: 개체 참조가 개체의 인스턴스로 설정되지 않았습니다. 디버깅 도중 이런 오류가 떴다. 이유는 간단했다. if문에서 저 runLoop 변수를 초기화 해주지 않은 상태에서 값을 비교했었다. if(runLoop == null || runLoop.Status == TaskStatus.RanToCompletion) { MessageBox.Show("loop 실행"); ..
-
C# - Managed DLL, Unmanaged DLLC# 2022. 1. 24. 12:34
Managed DLL과 Unmanaged DLL 대표적으로 나누면 CLR이 제공하는 서비스를 제공 받느냐 못받느냐로 나눌 수 있다. 이름 대로 Managed DLL은 제공 받고, Unmanaged DLL은 제공받지 못한다. 내용을 좀 더 조사해 보았다. - Managed DLL은 Common Language Runtime (줄여서 CLR) 환경에서 동작. - Managed DLL은 CLR에 의해 제공되는 실행시의 각종 서비스 (보안 및 메모리 관련)를 받을 수 있는 것을 말한다. - Managed DLL은 CLR에 의해 해당 컴퓨터에 적합한 기계 언어를 능동적으로 생성하여 범용성을 높였다. - Managed DLL은 Visual Basic .NET과 C# 컴파일러가 생성 - Unmanaged code는 ..
-
C# - using문C# 2022. 1. 24. 11:42
https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/keywords/using-statement using 문 - C# 참조 using 문(C# 참조) 이 문서의 내용 --> IDisposable 개체의 올바른 사용을 보장하는 편리한 구문을 제공합니다. C# 8.0부터 using 문은 IAsyncDisposable 개체의 올바른 사용을 보장합니다. 예제 다음 예제에서 docs.microsoft.com using 문 -IDisposable 개체의 올바른 사용을 보장하는 편리한 구문을 제공 - 관리되지 않는 리소스에 액세스 하는 클래스들을 사용한 후에 적절한 시기에 해제하여 해당 리소스를 다시 반납해야 하지만 사람이 수동적으로 하기에는 번거로..
-
C# - Application 클래스란?C# 2022. 1. 24. 10:14
[Application] MSDN의 설명으론 https://docs.microsoft.com/ko-kr/dotnet/api/system.windows.application?view=netcore-3.1 Application Class (System.Windows) Encapsulates a Windows Presentation Foundation application. docs.microsoft.com - WPF 응용 프로그램 관련 기능을 캡슐화 하는 클래스 - 자기 자신(exe)을 래핑하고 제어하는 최상위 클래스 Application 클래스의 주로 사용하는 기능 두 가지 - 윈도우 응용 프로그램을 시작 (Application.Run())하고 종료(Application.Exit())시키는 메소드를 제공...
-
[STAThread] 란?C# 2022. 1. 24. 09:52
[STAThread] 해당 메서드가 STA (Single Threaded Arpartment) Thread모델로 실행된다는 것으로 만약 이를 지우면 윈도우 프로그램에 문제가 생기는 경우가 있다. 인터넷에 나와있는 설명은 어플리케이션의 COM 스레드모델이 단일스레드어파트먼트(STA: Single-Threaded Apartment)인 것 라고 설명하였다. 일단 여기서 COM이 무엇인지 모르겠어서 찾아보면, - Component Object Model 의 약자 - 현재는 .net 프레임워크로 지위가 넘어가는 상황 - com 형식이란 com 객체를 말한다. - .net은 기본적으로 MTA(멀티스레드어파트먼트)로 동작한다. - 그런데 전통적으로 com 객체는 STAThread 기반이어서 이를 명시해줘야 한다. -..