c_cpp 在后台运行线程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 在后台运行线程相关的知识,希望对你有一定的参考价值。

#include <thread>

void open_document(const std::string& filename)
{
	// Opening a document ..
}

bool done_editing()
{
	// Processing whether user is done with the document ..
	return false;
}

enum COMMAND
{
	OPEN_NEW,
	INVALID
};

COMMAND get_user_command()
{
	return OPEN_NEW;
}

void process_user_input(COMMAND c)
{
	// Processing user input ...
}

std::string get_new_document_name()
{
	return "new.doc";
}

void edit_document(const std::string& filename)
{
	while (!done_editing())
	{
		COMMAND c = get_user_command();
		if (c == OPEN_NEW)
		{
			std::string new_doc = get_new_document_name();
			std::thread t(edit_document, new_doc);

			// This creates a daemon thread
			t.detach();
		}
		else
		{
			process_user_input(c);
		}
	}
}

int main()
{
	edit_document("new.doc");
	return 0;
}

以上是关于c_cpp 在后台运行线程的主要内容,如果未能解决你的问题,请参考以下文章

如何让PhoneGap IOS插件在后台线程中运行

在后台线程中运行处理程序消息

如何在Python中退出主线程并使子线程在后台继续运行

在异步后台线程上运行 CADisplayLink 的正确方法?

iOS保持线程在后台运行

总是在后台运行线程/进程?