windows_34_Thread_Base 线程基础
<ol>
<li>
<code>
<span>// windows_34_Thread_Base.cpp : 定义控制台应用程序的入口点。</span>
</code>
</li>
<li>
<code>
<span>//</span>
</code>
</li>
<li>
<code>
</code>
</li>
<li>
<code>
<span>#include</span>
<span />
<span>"stdafx.h"</span>
</code>
</li>
<li>
<code>
<span>#include</span>
<span />
<span><windows.h></span>
</code>
</li>
<li>
<code>
<span>#include</span>
<span />
<span><conio.h></span>
</code>
</li>
<li>
<code>
</code>
</li>
<li>
<code>
<span>//1、定义线程处理函数</span>
</code>
</li>
<li>
<code>
<span>//ThreadProc</span>
</code>
</li>
<li>
<code>
<span>DWORD WINAPI </span>
<span>ThreadProc1</span>
<span>(</span>
<span> LPVOID pParam</span>
<span>)</span>
</code>
</li>
<li>
<code>
<span>{</span>
</code>
</li>
<li>
<code>
<span> DWORD nValue </span>
<span>=</span>
<span />
<span>(</span>
<span>DWORD</span>
<span>)</span>
<span>pParam</span>
<span>;</span>
</code>
</li>
<li>
<code>
<span />
<span>int</span>
<span> i </span>
<span>=</span>
<span />
<span>0</span>
<span>;</span>
</code>
</li>
<li>
<code>
<span />
<span>while</span>
<span />
<span>(</span>
<span>i</span>
<span><</span>
<span>10</span>
<span>)</span>
</code>
</li>
<li>
<code>
<span />
<span>{</span>
</code>
</li>
<li>
<code>
<span> i</span>
<span>++;</span>
</code>
</li>
<li>
<code>
<span> printf</span>
<span>(</span>
<span />
<span>"Thread Proc1---------%d
"</span>
<span>,</span>
<span> nValue </span>
<span>);</span>
</code>
</li>
<li>
<code>
<span />
<span>Sleep</span>
<span>(</span>
<span />
<span>1000</span>
<span />
<span>);</span>
</code>
</li>
<li>
<code>
<span />
<span>}</span>
</code>
</li>
<li>
<code>
<span />
<span>return</span>
<span />
<span>0</span>
<span>;</span>
</code>
</li>
<li>
<code>
<span>}</span>
</code>
</li>
<li>
<code>
<span>DWORD WINAPI </span>
<span>ThreadProc2</span>
<span>(</span>
<span> LPVOID pParam </span>
<span>)</span>
</code>
</li>
<li>
<code>
<span>{</span>
</code>
</li>
<li>
<code>
<span> DWORD nValue </span>
<span>=</span>
<span />
<span>(</span>
<span>DWORD</span>
<span>)</span>
<span>pParam</span>
<span>;</span>
</code>
</li>
<li>
<code>
<span />
<span>while</span>
<span />
<span>(</span>
<span>1</span>
<span>)</span>
</code>
</li>
<li>
<code>
<span />
<span>{</span>
</code>
</li>
<li>
<code>
<span> printf</span>
<span>(</span>
<span />
<span>"%d---------Thread Proc2
"</span>
<span>,</span>
<span> nValue </span>
<span>);</span>
</code>
</li>
<li>
<code>
<span />
<span>Sleep</span>
<span>(</span>
<span />
<span>1000</span>
<span />
<span>);</span>
</code>
</li>
<li>
<code>
<span />
<span>}</span>
</code>
</li>
<li>
<code>
<span>}</span>
</code>
</li>
<li>
<code>
<span>void</span>
<span />
<span>Create</span>
<span>(</span>
<span />
<span>)</span>
</code>
</li>
<li>
<code>
<span>{</span>
</code>
</li>
<li>
<code>
<span> DWORD nValue </span>
<span>=</span>
<span />
<span>100</span>
<span>;</span>
</code>
</li>
<li>
<code>
<span />
<span>//2、创建线程</span>
</code>
</li>
<li>
<code>
<span />
<span>//CreateThread</span>
</code>
</li>
<li>
<code>
<span> DWORD nThreadID </span>
<span>=</span>
<span />
<span>0</span>
<span>;</span>
</code>
</li>
<li>
<code>
<span> HANDLE hThread </span>
<span>=</span>
<span />
<span>CreateThread</span>
<span>(</span>
<span> NULL</span>
<span>,</span>
<span />
<span>0</span>
<span>,</span>
<span />
<span>ThreadProc1</span>
<span>,</span>
<span />
<span>(</span>
<span>LPVOID</span>
<span>)</span>
<span>nValue</span>
<span>,</span>
<span> CREATE_SUSPENDED</span>
<span>,</span>
<span />
<span>&</span>
<span>nThreadID </span>
<span>);</span>
</code>
</li>
<li>
<code>
<span />
<span>//3、使用线程</span>
</code>
</li>
<li>
<code>
<span> printf</span>
<span>(</span>
<span />
<span>"Thread 1 ID:%d
"</span>
<span>,</span>
<span> nThreadID </span>
<span>);</span>
</code>
</li>
<li>
<code>
<span> printf</span>
<span>(</span>
<span />
<span>"Thread 1 Handle:%p
"</span>
<span>,</span>
<span> hThread </span>
<span>);</span>
</code>
</li>
<li>
<code>
<span />
<span>//执行线程</span>
</code>
</li>
<li>
<code>
<span />
<span>ResumeThread</span>
<span>(</span>
<span> hThread </span>
<span>);</span>
</code>
</li>
<li>
<code>
<span />
<span>//等候线程结束</span>
</code>
</li>
<li>
<code>
<span />
<span>WaitForSingleObject</span>
<span>(</span>
<span> hThread</span>
<span>,</span>
<span> INFINITE </span>
<span>);</span>
</code>
</li>
<li>
<code>
<span />
<span>//4、结束线程</span>
</code>
</li>
<li>
<code>
<span> hThread </span>
<span>=</span>
<span />
<span>CreateThread</span>
<span>(</span>
<span> NULL</span>
<span>,</span>
<span />
<span>0</span>
<span>,</span>
<span />
<span>ThreadProc2</span>
<span>,</span>
<span />
<span>(</span>
<span>LPVOID</span>
<span>)</span>
<span>nValue</span>
<span>,</span>
<span />
<span>0</span>
<span>,</span>
<span />
<span>&</span>
<span>nThreadID </span>
<span>);</span>
</code>
</li>
<li>
<code>
<span> printf</span>
<span>(</span>
<span />
<span>"Thread 2 ID:%d
"</span>
<span>,</span>
<span> nThreadID </span>
<span>);</span>
</code>
</li>
<li>
<code>
<span> printf</span>
<span>(</span>
<span />
<span>"Thread 2 Handle:%p
"</span>
<span>,</span>
<span> hThread </span>
<span>);</span>
</code>
</li>
<li>
<code>
<span />
<span>//挂起线程</span>
</code>
</li>
<li>
<code>
<span />
<span>SuspendThread</span>
<span>(</span>
<span> hThread </span>
<span>);</span>
</code>
</li>
<li>
<code>
<span />
<span>ResumeThread</span>
<span>(</span>
<span> hThread </span>
<span>);</span>
</code>
</li>
<li>
<code>
<span />
<span>CloseHandle</span>
<span>(</span>
<span> hThread </span>
<span>);</span>
</code>
</li>
<li>
<code>
<span>}</span>
</code>
</li>
<li>
<code>
<span>int</span>
<span> _tmain</span>
<span>(</span>
<span>int</span>
<span> argc</span>
<span>,</span>
<span> _TCHAR</span>
<span>*</span>
<span> argv</span>
<span>[])</span>
</code>
</li>
<li>
<code>
<span>{</span>
</code>
</li>
<li>
<code>
<span />
<span>Create</span>
<span>(</span>
<span />
<span>);</span>
</code>
</li>
<li>
<code>
<span> getchar</span>
<span>(</span>
<span />
<span>);</span>
</code>
</li>
<li>
<code>
<span />
<span>return</span>
<span />
<span>0</span>
<span>;</span>
</code>
</li>
<li>
<code>
<span>}</span>
</code>
</li>
</ol>
原文:http://www.cnblogs.com/nfking/p/5573569.html
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!