<code>__declspec</code><code>(</code><code>thread</code><code>) </code><code>int</code> <code>nCount = 0;</code><code>//線程局部變量</code>
<code>DWORD</code> <code>WINAPI threadProc(</code><code>LPVOID</code> <code>* wparm)</code>
<code>{</code>
<code> </code><code>int</code> <code>i = 0;</code>
<code> </code><code>while</code> <code>(1)</code>
<code> </code><code>{</code>
<code> </code><code>if</code> <code>(i == 20) </code><code>break</code><code>;</code>
<code> </code><code>Sleep(30);</code>
<code> </code><code>nCount =i++;</code>
<code> </code><code>CString str;</code>
<code> </code><code>str.Format(_T(</code><code>"%d\n"</code><code>), nCount);</code>
<code> </code><code>TRACE(str); </code>
<code> </code><code>}</code>
<code> </code><code>return</code> <code>0;</code>
<code>}</code>
<code>void</code> <code>CtestThreadDlg::OnBnClickedButton14()</code>
<code> </code><code>HANDLE</code> <code>handle = ::CreateThread(NULL, 0, </code>
<code> </code><code>(LPTHREAD_START_ROUTINE)threadProc,</code><code>this</code><code>, 0,NULL);</code><code>//函數類型轉換</code>
将類的成員函數,作為線程的回調函數.代碼如下:
<code>class</code> <code>test</code>
<code> </code><code>UINT</code> <code>m_nCount;</code>
<code> </code><code>public</code><code>:</code>
<code> </code><code>UINT</code> <code>WINAPI threadProc(</code><code>LPVOID</code> <code>* wparm);</code>
<code>UINT</code> <code>__stdcall test::threadProc(</code><code>LPVOID</code> <code>* wparm)</code>
<code> </code><code>m_nCount =i++;</code>
<code> </code><code>str.Format(_T(</code><code>"%d\n"</code><code>), m_nCount);</code>
<code>void</code> <code>test::OnBnClickedStart()</code>
<code> </code><code>typedef</code> <code>UINT</code> <code>(__stdcall *stdProc)(</code><code>LPVOID</code><code>);</code>
<code> </code><code>typedef</code> <code>UINT</code> <code>(__stdcall test::* ProcObject)(</code><code>LPVOID</code><code>);</code>
<code> </code><code>ProcObject theProc = (ProcObject)&test::threadProc;</code>
<code> </code><code>HANDLE</code> <code>handle = CreateThread(NULL, 0, </code>
<code> </code><code>(LPTHREAD_START_ROUTINE)*(stdProc*)&theProc,</code><code>this</code><code>, 0,NULL);</code>
<code></code>
本文轉自Chinayu201451CTO部落格,原文連結:http://blog.51cto.com/9233403/2048717 ,如需轉載請自行聯系原作者