本文整理汇总了C++中MyThread::Start方法的典型用法代码示例。如果您正苦于以下问题:C++ MyThread::Start方法的具体用法?C++ MyThread::Start怎么用?C++ MyThread::Start使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MyThread
的用法示例。
在下文中一共展示了MyThread::Start方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char **argv)
{
printf("Starting...\n");
MyThread *mt = new MyThread;
mt->Initialize(1024);
if (!mt->Start(MyThread::Run))
do
printf("Thread yielded...\n");
while (!ResumeThread(mt));
printf("Done!\n");
return 0;
}
示例2: main
//.........这里部分代码省略.........
did = should = PR_FALSE;
for (keys = 0; keys < 4; ++keys)
{
rv = RCThread::NewPrivateIndex(&key[keys]);
key[keys + 4] = key[keys] + 4;
MY_ASSERT(PR_SUCCESS == rv);
}
PrintProgress(__LINE__);
/* the first four should be bu null, the last four undefined and null */
did = should = PR_FALSE;
for (keys = 0; keys < 8; ++keys)
{
pd = RCThread::GetPrivateData(key[keys]);
MY_ASSERT(NULL == pd);
}
PrintProgress(__LINE__);
/* initially set private data for new keys */
did = should = PR_FALSE;
for (keys = 0; keys < 4; ++keys)
{
rv = RCThread::SetPrivateData(key[keys], &key_string[keys]);
MY_ASSERT(PR_SUCCESS == rv);
}
PrintProgress(__LINE__);
/* re-assign the private data, albeit the same content */
did = PR_FALSE; should = PR_TRUE;
for (keys = 0; keys < 4; ++keys)
{
pd = RCThread::GetPrivateData(key[keys]);
PR_ASSERT(NULL != pd);
rv = RCThread::SetPrivateData(key[keys], &key_string[keys]);
MY_ASSERT(PR_SUCCESS == rv);
}
PrintProgress(__LINE__);
/* set private to <empty> */
did = PR_FALSE; should = PR_TRUE;
for (keys = 0; keys < 4; ++keys)
{
rv = RCThread::SetPrivateData(key[keys]);
MY_ASSERT(PR_SUCCESS == rv);
}
PrintProgress(__LINE__);
/* should all be null now */
did = should = PR_FALSE;
for (keys = 0; keys < 4; ++keys)
{
pd = RCThread::GetPrivateData(key[keys]);
PR_ASSERT(NULL == pd);
}
PrintProgress(__LINE__);
/* allocate another batch of keys and assign data to them */
did = should = PR_FALSE;
for (keys = 8; keys < 127; ++keys)
{
rv = RCThread::NewPrivateIndex(&key[keys]);
MY_ASSERT(PR_SUCCESS == rv);
rv = RCThread::SetPrivateData(key[keys], &extension);
MY_ASSERT(PR_SUCCESS == rv);
}
PrintProgress(__LINE__);
/* set all the extended slots to <empty> */
did = PR_FALSE; should = PR_TRUE;
for (keys = 8; keys < 127; ++keys)
{
rv = RCThread::SetPrivateData(key[keys]);
MY_ASSERT(PR_SUCCESS == rv);
}
PrintProgress(__LINE__);
/* set all the extended slots to <empty> again (noop) */
did = should = PR_FALSE;
for (keys = 8; keys < 127; ++keys)
{
rv = RCThread::SetPrivateData(key[keys]);
MY_ASSERT(PR_SUCCESS == rv);
}
if (debug) PR_fprintf(fout, "Creating thread\n");
thread = new MyThread();
if (debug) PR_fprintf(fout, "Starting thread\n");
thread->Start();
if (debug) PR_fprintf(fout, "Joining thread\n");
(void)thread->Join();
if (debug) PR_fprintf(fout, "Joined thread\n");
failed |= (PR_FAILURE == RCPrimordialThread::Cleanup());
(void)PR_fprintf(
fout, "%s\n",((PR_TRUE == failed) ? "FAILED" : "PASSED"));
return (failed) ? 1 : 0;
} /* main */