使用前須加入以下 NameSpace

using namespace System::Threading;

--------------------------------------

C++/CLR 主控台寫法+範例

void testa()
{
	while(true) ::System::Console::WriteLine("aaaaa");
}
void testb()
{
	while(true) ::System::Console::WriteLine("bbbbb");
}
void main()
{
	Thread^ thr1 = gcnew ::Thread(gcnew::Threading::ThreadStart(testa));
	Thread^ thr2 = gcnew ::Thread(gcnew::Threading::ThreadStart(testb));
	
	thr1->Start();
	thr2->Start();
}

---------說明--------

證明兩個無限迴圈的東西可以輪流同時執行

 

====================================================


C++/CLR From 表單寫法+範例(以 ListBox 作範例)

新增兩個測試用 Function

void testa()
{
	for(int i=0; i<10; i++) this->listBox1->Items->Add("testa");
}
void testb()
{
	for(int i=0; i<10; i++) this->listBox1->Items->Add("testb");
}

Form1_Load 事件內輸入


::System::Threading::Thread^ thr1 = gcnew ::System::Threading::Thread(gcnew ::System::Threading::ThreadStart(this, &testth::Form1::testa));
::System::Threading::Thread^ thr2 = gcnew ::System::Threading::Thread(gcnew ::System::Threading::ThreadStart(this, &testth::Form1::testb));
thr1->Start();
thr2->Start();

------說明------

會發現 testa 跟 testb 輪流印,而不是 testa 先印10次再換 testb,證明兩個執行緒是分別同時執行的

AwEi 發表在 痞客邦 PIXNET 留言(1) 人氣()


留言列表 (1)

發表留言
  • noodlejay
  • 兩個分開的執行續好像沒辦法同時存取同一個listBox1 ?
【 X 關閉 】

【PIXNET 痞客邦】國外旅遊調查
您是我們挑選到的讀者!

填完問卷將有機會獲得心動好禮哦(注意:關閉此視窗將不再出現)

立即填寫取消