* Thread(스레드)간 Priority(우선순위)가 다른 경우 사용된다.

 

1. Sleep(0)

: 우선순위가 같은 Thread가 ready to run 상태가 되면 자신이 쥐고 있던 CPU의 선점을 풀어 Context Switching이 이루어진다. 만약 Thread간 우선 순위가 같지 않다면 자신이 쥐고 있던 CPU 선점을 풀지 않는다. 

 

2 .Sleep(1)

: 우선순위에 상관 없이 다른 Thread가 ready to run 상태가 되면 자신이 쥐고 있던 CPU의 선점을 풀어 Context Switching이 이루어진다.


[출처] https://valueelectronic.tistory.com/236

 

sleep(0)와 sleep(1)의 차이점

Sleep(0)의 경우, 다른 Thread가 ready to run 되었다고 해서 자신이 쥐고 있던 CPU의 선점을 풀지 않습니다. 선점을 풀려면 조건이 있는데 그 ready to run 인 Thread가 지금 선점한 Thread와 우선순위가 equal이..

valueelectronic.tistory.com

 

https://jeak.tistory.com/233

 

MFC MoveWindow - 컨트롤 위치 및 크기 변경

MFC MoveWindow MFC에서 사용하는 control들의 위치와 크기를 변경하는 movewindow함수에 대해 알아보겠습니다. 1 2 3     void MoveWindow(int x, int y, int nWidth, int nHeight,         ..

jeak.tistory.com

 

https://balabala.tistory.com/45?category=947457 

 

[MFC] 채팅 프로그램 - 클라이언트 (2/3)

- 설명 - 프로젝트 명 : ChatClient(대화 상자) ① CSocket 클래스 이용 : 동기식(블로킹)으로 동작 ② 서버 클라이언트 1:1 통신 ③ 해당 글은 클라이언트 채팅 프로그램 만드는 법 설명 1. MFC 애플리케이

balabala.tistory.com


[따라하다가 안되던 부분들]

2. 다이얼로그 디자인 및 ID

형식을 CString 으로 하니 에러가 나서 CEdit, CStatic으로 변경했다. 

Control을 다루는 부분도 형식에 따라서 변경했다.

그림3. 멤버변수 설정

 

7. [접속] 및 [전송] 버튼 클릭 메시지 함수 작업

위 작업대로 형식에 맞게 메세지 함수 소스 코드 수정

void CChatClientDlg::OnBnClickedButtonConnect()
{
	// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
	CString strIP;

	UpdateData(TRUE);
	m_socCom.Create();

	m_strIP.GetWindowText(strIP);

	// IP 주소와 포트 번호를 지정
	m_socCom.Connect(strIP, 5000);
	m_socCom.Init(this->m_hWnd);

}

void CChatClientDlg::OnBnClickedButtonSend()
{
	// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
	UpdateData(TRUE);
	char pTmp[256];
	CString strTmp, strText;
	CStringA strTextA;

	m_strSend.GetWindowText(strText);

	strTextA = CStringA(strText);

	// pTmp에 전송할 데이터 입력
	memset(pTmp, '\0', 256);
	memcpy(pTmp, strTextA.GetBuffer(), strTextA.GetLength());
	m_strSend.Clear();

	// 전송
	m_socCom.Send(pTmp, 256);

	// 전송한 데이터도 리스트박스에 보여준다.
	strTmp = pTmp;
	int i = m_list.GetCount();
	m_list.InsertString(i, strTmp);

	UpdateData(FALSE);
}

https://snowbora.tistory.com/369

 

[C++] MFC에서 CEdit 사용하기

MS Visual Studio를 사용해서 간단한 어플리케이션 프로그래밍을 할 때, 단순히 버튼(Button)이나 텍스트 박스(TextBox) 등을 만들고 간단한 함수 등을 맵핑해서 쓰는 경우가 많습니다. 기존에 Visual C++을

snowbora.tistory.com

 

https://balabala.tistory.com/44?category=947457 
 

[MFC] 채팅 프로그램 - 서버 (1/3)

- 설명 - 프로젝트 명 : ChatServer(대화 상자) ① CSocket 클래스 이용 : 동기식(블로킹)으로 동작 ② 서버 클라이언트 1:1 통신 ③ 해당 글은 서버용 채팅 프로그램 만드는 법 설명 1. MFC 애플리케이션

balabala.tistory.com


[따라하다가 안되던 부분들]

2. 다이얼로그 디자인 및 ID

 

형식을 CString 으로 하니 에러가 나서 CEdit, CStatic으로 변경했다. 

Control을 다루는 부분도 형식에 따라서 변경했다.

그림3. 멤버변수 설정

10. [전송] 버튼 클릭 메시지 함수 작업

위 작업에 따라서 메세지 함수 소스 코드 변경

void CChatServerDlg::OnBnClickedButtonSend()
{
	// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
	UpdateData(TRUE);
	char pTmp[256];
	CString strTmp, strText;
	CStringA strTextA;

	m_strSend.GetWindowText(strText);

	strTextA = CStringA(strText);

	// pTmp에 전송할 데이터 입력
	memset(pTmp, '\0', 256);
	memcpy(pTmp, strTextA.GetBuffer(), strTextA.GetLength());
	m_strSend.Clear();

	// 전송
	m_socCom->Send(pTmp, 256);

	// 전송한 데이터도 리스트박스에 보여준다.
	strTmp = pTmp;
	int i = m_list.GetCount();
	m_list.InsertString(i, strTmp);

	UpdateData(FALSE);
}

 

 

https://eachan.tistory.com/6

 

GDI+를 이용한 더블 버퍼링

지금까지 찾아본 GDI+ 더블 버퍼링 코드를 보면 거의 비슷한 내용이지만 구현하는 방법이 조금씩 달라서 도대체 어떤 것을 써야할지 헷갈리는 경우가 있다. 이럴 경우를 위해서 본인이 현재 쓰는

eachan.tistory.com

.

http://www.tipssoft.com/bulletin/board.php?bo_table=update&wr_id=982 

 

팁스소프트 > 팁스웨어 자료실 > [소스] 좌표 확대 및 축소하기 (맵핑 모드 미사용)

[소스] 좌표 확대 및 축소하기 (맵핑 모드 미사용)  글쓴이 : 관리자   트랙백 주소 : http://www.tipssoft.com/bulletin/tb.php/update/982    TransferCoordinate-Step1.zip (32.9K) [42] DATE : 2009-09-23 13:56:03   팁스소프

www.tipssoft.com

 

https://luckygg.tistory.com/233

 

[MFC] Dynamic Layout 적용하여 컨트롤 Resizing하기(예제 포함)

소개 Visual Studio 2015 MFC에는 동적 레이아웃(Dynamic Layout) 기능이 추가되었습니다. 이 기능은 Dialog의 Resizing에 따라 자동으로 Control들의 크기가 조정되는 것을 의미합니다. 아래 애니메이션을 보면..

luckygg.tistory.com

 

+ Recent posts