这篇教程C++ workerThread函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中workerThread函数的典型用法代码示例。如果您正苦于以下问题:C++ workerThread函数的具体用法?C++ workerThread怎么用?C++ workerThread使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了workerThread函数的24个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: cbvoid Filter::use( Filter::SharedDataLocker *locker, const std::function<void ()> &cb, const std::function<void ()> &rs){ if ( !workerThread() ){ cb(); rs(); } else if ( locker && locker->m_allLocked ){ workerThread()->postWork(cb, rs); } delete locker;}
开发者ID:livecv,项目名称:livecv,代码行数:13,
示例2: QObjectDatabase::Database( const QString& dbname, QObject* parent ) : QObject( parent ) , m_ready( false ) , m_impl( new DatabaseImpl( dbname ) ) , m_workerRW( new DatabaseWorkerThread( this, true ) ) , m_idWorker( new IdThreadWorker( this ) ){ s_instance = this; if ( MAX_WORKER_THREADS < DEFAULT_WORKER_THREADS ) m_maxConcurrentThreads = MAX_WORKER_THREADS; else m_maxConcurrentThreads = qBound( DEFAULT_WORKER_THREADS, QThread::idealThreadCount(), MAX_WORKER_THREADS ); tDebug() << Q_FUNC_INFO << "Using" << m_maxConcurrentThreads << "database worker threads"; connect( m_impl, SIGNAL( indexReady() ), SIGNAL( indexReady() ) ); connect( m_impl, SIGNAL( indexReady() ), SIGNAL( ready() ) ); connect( m_impl, SIGNAL( indexReady() ), SLOT( setIsReadyTrue() ) ); Q_ASSERT( m_workerRW ); m_workerRW.data()->start(); while ( m_workerThreads.count() < m_maxConcurrentThreads ) { QPointer< DatabaseWorkerThread > workerThread( new DatabaseWorkerThread( this, false ) ); Q_ASSERT( workerThread ); workerThread.data()->start(); m_workerThreads << workerThread; } m_idWorker->start();}
开发者ID:R4md4c,项目名称:tomahawk,代码行数:32,
示例3: void* OperationQueue::Impl::onWorkerThread(void* data) { auto impl = (OperationQueue::Impl*)data; impl->workerThread(); impl->release(); return nullptr; }
开发者ID:adroitly,项目名称:boom,代码行数:7,
示例4: workerThreadvoid WebSharedWorkerImpl::connect(WebMessagePortChannel* webChannel, ConnectListener* listener){ workerThread()->runLoop().postTask( createCallbackTask(&connectTask, adoptPtr(webChannel))); if (listener) listener->connected();}
开发者ID:Igalia,项目名称:blink,代码行数:7,
示例5: mainint main(int argc, char **argv){ ros::init(argc, argv, "move_controller_node"); move_controller = new vigir_ocs::PSMoveTemplateController(); boost::thread workerThread(workerFunc); while(ros::ok()) { //hotkey_relay.onUpdate(); ros::spinOnce(); usleep(3000); } io_mutex.lock(); ros_down = true; io_mutex.unlock(); workerThread.join(); delete move_controller; return 0;}
开发者ID:team-vigir,项目名称:vigir_ocs_common,代码行数:25,
示例6: mainint main(int argc, char **argv){ ros::init(argc, argv, "image_raw"); ros::NodeHandle n; image_transport::Publisher image_pub; image_transport::ImageTransport it(n); image_pub = it.advertise("image_raw", 1); sensor_msgs::Image img_; ros::Rate loop_rate(10); PixyCam cam; boost::thread workerThread(&PixyCam::run, &cam);// cam.run(); int count = 0; while (ros::ok()){ cv::Mat frame = cam.getImage(); fillImage(img_, "bgr8", frame.rows, frame.cols, frame.channels() * frame.cols, frame.data); image_pub.publish(img_); ros::spinOnce(); loop_rate.sleep(); ++count; } return 0;}
开发者ID:erlerobot,项目名称:erle_pixy,代码行数:35,
示例7: ASSERTvoid WebSharedWorkerImpl::onScriptLoaderFinished(){ ASSERT(m_loadingDocument); ASSERT(m_mainScriptLoader); if (m_askedToTerminate) return; if (m_mainScriptLoader->failed()) { m_mainScriptLoader->cancel(); m_client->workerScriptLoadFailed(); // The SharedWorker was unable to load the initial script, so // shut it down right here. delete this; return; } Document* document = m_mainFrame->frame()->document(); WorkerThreadStartMode startMode = DontPauseWorkerGlobalScopeOnStart; if (InspectorInstrumentation::shouldPauseDedicatedWorkerOnStart(document)) startMode = PauseWorkerGlobalScopeOnStart; // FIXME: this document's origin is pristine and without any extra privileges. (crbug.com/254993) SecurityOrigin* starterOrigin = document->securityOrigin(); OwnPtrWillBeRawPtr<WorkerClients> workerClients = WorkerClients::create(); provideLocalFileSystemToWorker(workerClients.get(), LocalFileSystemClient::create()); WebSecurityOrigin webSecurityOrigin(m_loadingDocument->securityOrigin()); provideContentSettingsClientToWorker(workerClients.get(), adoptPtr(m_client->createWorkerContentSettingsClientProxy(webSecurityOrigin))); RefPtrWillBeRawPtr<ContentSecurityPolicy> contentSecurityPolicy = m_mainScriptLoader->releaseContentSecurityPolicy(); OwnPtr<WorkerThreadStartupData> startupData = WorkerThreadStartupData::create( m_url, m_loadingDocument->userAgent(), m_mainScriptLoader->script(), nullptr, startMode, contentSecurityPolicy ? contentSecurityPolicy->headers() : nullptr, starterOrigin, workerClients.release()); m_loaderProxy = WorkerLoaderProxy::create(this); setWorkerThread(SharedWorkerThread::create(m_name, m_loaderProxy, *this)); InspectorInstrumentation::scriptImported(m_loadingDocument.get(), m_mainScriptLoader->identifier(), m_mainScriptLoader->script()); m_mainScriptLoader.clear(); workerThread()->start(startupData.release()); m_workerInspectorProxy->workerThreadCreated(m_loadingDocument.get(), workerThread(), m_url); m_client->workerScriptLoaded();}
开发者ID:howardroark2018,项目名称:chromium,代码行数:47,
示例8: DirListWorkervoid DiskLocation::fetchItems(QDir::Filter dirFilter, bool recursive){ DirListWorker *dlw = new DirListWorker(m_info->absoluteFilePath(), dirFilter, recursive); connect(dlw, SIGNAL(itemsAdded(DirItemInfoList)), this, SIGNAL(itemsAdded(DirItemInfoList))); connect(dlw, SIGNAL(workerFinished()), this, SLOT(onItemsFetched())); workerThread()->addRequest(dlw);}
开发者ID:akashgaurav89,项目名称:files-app,代码行数:9,
示例9: mainint main(int argc, char* argv[]) { std::cout << "main: startup" << std::endl; Worker w = Worker(); boost::thread workerThread(w); std::cout << "main: waiting for thread" << std::endl; workerThread.join(); std::cout << "main: done" << std::endl; return 0; }
开发者ID:aalex,项目名称:proto-toonloop,代码行数:10,
示例10: initializeLoadervoid WebWorkerImpl::startWorkerContext(const WebURL& scriptUrl, const WebString& userAgent, const WebString& sourceCode){ initializeLoader(scriptUrl); setWorkerThread(DedicatedWorkerThread::create(scriptUrl, userAgent, sourceCode, *this, *this)); // Worker initialization means a pending activity. reportPendingActivity(true); workerThread()->start();}
开发者ID:flwh,项目名称:Alcatel_OT_985_kernel,代码行数:11,
示例11: lock//----------------------------------------------------------------------------------------//Command worker thread control//----------------------------------------------------------------------------------------void DeviceContext::StartCommandWorkerThread(size_t deviceIndex, volatile ReferenceCounterType& remainingThreadCount, volatile ReferenceCounterType& suspendedThreadCount, std::mutex& commandMutex, std::condition_variable& commandSent, std::condition_variable& commandProcessed, IExecutionSuspendManager* asuspendManager, const DeviceContextCommand& command){ std::unique_lock<std::mutex> lock(commandMutex); if(!commandWorkerThreadActive) { commandWorkerThreadActive = true; std::thread workerThread(std::bind(std::mem_fn(&DeviceContext::CommandWorkerThread), this, deviceIndex, std::ref(remainingThreadCount), std::ref(suspendedThreadCount), std::ref(commandMutex), std::ref(commandSent), std::ref(commandProcessed), asuspendManager, std::ref(command))); workerThread.detach(); commandThreadReady.wait(lock); }}
开发者ID:roman-murashov,项目名称:exodus,代码行数:14,
示例12: initializeLoadervoid WebSharedWorkerImpl::startWorkerContext(const WebURL& url, const WebString& name, const WebString& userAgent, const WebString& sourceCode, const WebString& contentSecurityPolicy, WebContentSecurityPolicyType policyType, long long){ initializeLoader(url); WorkerThreadStartMode startMode = m_pauseWorkerContextOnStart ? PauseWorkerGlobalScopeOnStart : DontPauseWorkerGlobalScopeOnStart; OwnPtr<WorkerClients> workerClients = WorkerClients::create(); provideLocalFileSystemToWorker(workerClients.get(), WorkerFileSystemClient::create()); OwnPtr<WorkerThreadStartupData> startupData = WorkerThreadStartupData::create(url, userAgent, sourceCode, startMode, contentSecurityPolicy, static_cast<WebCore::ContentSecurityPolicy::HeaderType>(policyType), workerClients.release()); setWorkerThread(SharedWorkerThread::create(name, *this, *this, startupData.release())); workerThread()->start();}
开发者ID:ychaim,项目名称:chromium.bb,代码行数:12,
示例13: startWithSourceCode void startWithSourceCode(const String& source) { std::unique_ptr<Vector<CSPHeaderAndType>> headers = wrapUnique(new Vector<CSPHeaderAndType>()); CSPHeaderAndType headerAndType("contentSecurityPolicy", ContentSecurityPolicyHeaderTypeReport); headers->append(headerAndType); workerThread()->start(WorkerThreadStartupData::create( KURL(ParsedURLString, "http://fake.url/"), "fake user agent", source, nullptr /* cachedMetaData */, DontPauseWorkerGlobalScopeOnStart, headers.get(), "" /* referrerPolicy */, m_securityOrigin.get(), nullptr /* workerClients */, WebAddressSpaceLocal, nullptr /* originTrialTokens */, nullptr /* workerSettings */, V8CacheOptionsDefault)); }
开发者ID:mirror,项目名称:chromium,代码行数:14,
示例14: mainint main(){ std::cout << "main: startup" << std::endl; boost::thread workerThread(workerFunc); std::cout << "main: waiting for thread" << std::endl; workerThread.join(); std::cout << "main: done" << std::endl; return 0;}
开发者ID:sweetwood,项目名称:core-android-market,代码行数:14,
示例15: mainint main(int argc, char* argv[]){ if (argc != 2) { std::cerr << "Usage: TCP_echo_server <port>/n"; return -1; } wiringPiSetup(); wiringPiI2CSetup(I2C_TEMP_ADDRESS); boost::thread workerThread(listener_loop, std::atoi(argv[1])); // Creates a thread that loops to accept sockets workerThread.join(); return 0;}
开发者ID:Shalelol,项目名称:tmc,代码行数:15,
示例16: connectvoid DiskLocation::addExternalFsWorkerRequest(ExternalFileSystemChangesWorker *extFsWorker){ connect(extFsWorker, SIGNAL(added(DirItemInfo)), this, SIGNAL(extWatcherItemAdded(DirItemInfo))); connect(extFsWorker, SIGNAL(removed(DirItemInfo)), this, SIGNAL(extWatcherItemRemoved(DirItemInfo))); connect(extFsWorker, SIGNAL(changed(DirItemInfo)), this, SIGNAL(extWatcherItemChanged(DirItemInfo))); connect(extFsWorker, SIGNAL(finished(int)), this, SIGNAL(extWatcherChangesFetched(int))); workerThread()->addRequest(extFsWorker);}
开发者ID:akashgaurav89,项目名称:files-app,代码行数:16,
示例17: workerThreadvoid scoring::MarkovNetworkScoreCalculator::calculateScores(FloatMap &cache) { this->outOfTime = false; boost::asio::io_service io_t; t = new boost::asio::deadline_timer(io_t); if (runningTime > 0) { t->expires_from_now(boost::posix_time::seconds(runningTime)); t->async_wait(boost::bind(&scoring::MarkovNetworkScoreCalculator::timeout, this, boost::asio::placeholders::error)); boost::thread workerThread(boost::bind(&scoring::MarkovNetworkScoreCalculator::calculateScores_internal, this, boost::ref(cache))); io_t.run(); workerThread.join(); io_t.stop(); } else { calculateScores_internal(cache); }}
开发者ID:shskwmt,项目名称:urlearning,代码行数:16,
示例18: QObjectDatabase::Database( const QString& dbname, QObject* parent ) : QObject( parent ) , m_ready( false ) , m_impl( new DatabaseImpl( dbname ) ) , m_workerRW( new DatabaseWorkerThread( this, true ) ) , m_idWorker( new IdThreadWorker( this ) ){ s_instance = this; // register commands registerCommand<DatabaseCommand_AddFiles>(); registerCommand<DatabaseCommand_DeleteFiles>(); registerCommand<DatabaseCommand_CreatePlaylist>(); registerCommand<DatabaseCommand_DeletePlaylist>(); registerCommand<DatabaseCommand_LogPlayback>(); registerCommand<DatabaseCommand_RenamePlaylist>(); registerCommand<DatabaseCommand_SetPlaylistRevision>(); registerCommand<DatabaseCommand_CreateDynamicPlaylist>(); registerCommand<DatabaseCommand_DeleteDynamicPlaylist>(); registerCommand<DatabaseCommand_SetDynamicPlaylistRevision>(); registerCommand<DatabaseCommand_SocialAction>(); registerCommand<DatabaseCommand_SetCollectionAttributes>(); registerCommand<DatabaseCommand_SetTrackAttributes>(); registerCommand<DatabaseCommand_ShareTrack>(); if ( MAX_WORKER_THREADS < DEFAULT_WORKER_THREADS ) m_maxConcurrentThreads = MAX_WORKER_THREADS; else m_maxConcurrentThreads = qBound( DEFAULT_WORKER_THREADS, QThread::idealThreadCount(), MAX_WORKER_THREADS ); tDebug() << Q_FUNC_INFO << "Using" << m_maxConcurrentThreads << "database worker threads"; connect( m_impl, SIGNAL( indexReady() ), SLOT( markAsReady() ) ); connect( m_impl, SIGNAL( indexReady() ), SIGNAL( indexReady() ) ); Q_ASSERT( m_workerRW ); m_workerRW.data()->start(); while ( m_workerThreads.count() < m_maxConcurrentThreads ) { QPointer< DatabaseWorkerThread > workerThread( new DatabaseWorkerThread( this, false ) ); Q_ASSERT( workerThread ); workerThread.data()->start(); m_workerThreads << workerThread; } m_idWorker->start();}
开发者ID:hatchetindustries,项目名称:tomahawk,代码行数:47,
示例19: QThreadvoid MainWindow::released(){ if(btnSearch->text() == QString(ConstStrings::search)){ btnSearch->setText(QString(ConstStrings::cancel)); model->removeRows(0, model->rowCount()); int nFrom = txtFrom->text().toInt(); int nTo = txtTo->text().toInt(); thread = new QThread(); worker = new Worker(nFrom, nTo); worker->moveToThread(thread); workerThread(); thread->start(); }else{ worker->exit(); btnSearch->setText(QString(ConstStrings::search)); }}
开发者ID:jetedonner,项目名称:ch.kimhauser.qt.AmicableNumbers,代码行数:18,
示例20: MessagePortChannelArrayvoid WebWorkerImpl::postMessageToWorkerContext(const WebString& message, const WebMessagePortChannelArray& webChannels){ OwnPtr<MessagePortChannelArray> channels; if (webChannels.size()) { channels = new MessagePortChannelArray(webChannels.size()); for (size_t i = 0; i < webChannels.size(); ++i) { RefPtr<PlatformMessagePortChannel> platform_channel = PlatformMessagePortChannel::create(webChannels[i]); webChannels[i]->setClient(platform_channel.get()); (*channels)[i] = MessagePortChannel::create(platform_channel); } } workerThread()->runLoop().postTask( createCallbackTask(&postMessageToWorkerContextTask, this, String(message), channels.release()));}
开发者ID:flwh,项目名称:Alcatel_OT_985_kernel,代码行数:18,
示例21: TESTTEST(WorkerThread_Test1, JustRun){ int a[5] = {11, 22, 33, 44, 55}; int b[5]; int size = _countof(a); std::copy(&a[0], &a[_countof(a)], b); TestWorker testWorker; testWorker.Run(); Worker worker; //WorkerThread<Worker, std::tr1::shared_ptr<Task> > workerThread(&worker, &Worker::RunMethod); WorkerThread<Worker, Task > workerThread(&worker, &Worker::RunMemberMethod); workerThread.Start(); //WorkerThread<Worker, Task > workerThread(&Worker::RunStaticMethod); int numberOfTasks = 5; for(int i = 0; i < numberOfTasks; ++i) { Task task(i); //std::tr1::shared_ptr<Task> task(new Task(i)); workerThread.Enqueue(task); //Sleep(1000); } //Sleep(3000); workerThread.Stop(); workerThread.Stop(); //workerThread.TerminateGracefully(); workerThread.Join(); /*DWORD result = workerThread.Join(4000); if(WAIT_OBJECT_0 != result) workerThread.Terminate();*/ //ASSERT_TRUE(worker.counter == numberOfTasks); EXPECT_EQ(worker.counter, numberOfTasks);}
开发者ID:Petrik7,项目名称:Prototypes,代码行数:41,
示例22: QWidgetRC_Widget::RC_Widget(bool block_Y, int max_up_down, int min_up_down, int max_left_right, int min_left_right, int rev_up_down, int rev_left_right, QWidget *parent) : QWidget(parent){ if (pthread_mutex_init(&mutex, NULL) != 0){ std::cout << "mutex init failed" << std::endl; } QPalette pal_background; pal_background.setColor(QPalette::Background, Qt::black); setAutoFillBackground(true); setPalette(pal_background); setMaximumSize(500, 500); setMinimumSize(500, 500); press = false; automatic = false; this->block_Y = block_Y; boost::thread workerThread(&RC_Widget::run, this); connect(this, SIGNAL(update_GUI()), this, SLOT(on_update_GUI_recieved())); p_actual.setX(250); if(block_Y) p_actual.setY(495); else p_actual.setY(250); this->min_value_up_down = min_up_down; this->max_value_up_down = max_up_down; this->min_value_left_right = min_left_right; this->max_value_left_right = max_left_right; this->rev_left_right = rev_left_right; this->rev_up_down = rev_up_down;}
开发者ID:kenkiki94305,项目名称:alpha_autopilot,代码行数:41,
示例23: mainint main(int argc, char **argv){ #ifdef POINT_CLOUD update = false; boost::thread workerThread(visualize); #endif ros::init(argc, argv, "pfilterTest"); ros::NodeHandle n; // ros::Publisher pub = n.advertise<geometry_msgs::PoseArray>("/particles_from_filter", 5); ROS_INFO("Testing particle filter"); particleFilter::cspace b_Xprior[2]; computeInitialDistribution(b_Xprior, n); PFilterTest pFilterTest(NUM_PARTICLES, b_Xprior); ros::spin(); #ifdef POINT_CLOUD workerThread.interrupt(); workerThread.join(); #endif}
开发者ID:bsaund,项目名称:Contact_Localization,代码行数:22,
示例24: workerThreadvoid WebSharedWorkerImpl::connect(WebMessagePortChannel* webChannel){ workerThread()->postTask( BLINK_FROM_HERE, createCrossThreadTask(&connectTask, adoptPtr(webChannel)));}
开发者ID:howardroark2018,项目名称:chromium,代码行数:5,
注:本文中的workerThread函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ worksheet_write_number函数代码示例 C++ worker函数代码示例 |