Click here to Skip to main content
Click here to Skip to main content
Add your own
alternative version

Cross thread calls in native C++

, 19 Jul 2007 Apache
An article which discusses the need for synchronization in multi-threaded applications, and features a generic framework for making calls across threads: ThreadSynch.
threadsynch_src.zip
threadsynch_src
docs
API_DOCS.html.lnk
Doxyfile
html
class_async_caller__coll__graph.dot
class_async_caller__coll__graph.md5
class_thread_synch_1_1_a_p_c_pickup_policy__coll__graph.dot
class_thread_synch_1_1_a_p_c_pickup_policy__coll__graph.md5
class_thread_synch_1_1_a_p_c_pickup_policy__inherit__graph.dot
class_thread_synch_1_1_a_p_c_pickup_policy__inherit__graph.md5
class_thread_synch_1_1_call_scheduler__coll__graph.dot
class_thread_synch_1_1_call_scheduler__coll__graph.md5
class_thread_synch_1_1_pickup_policy_provider__inherit__graph.dot
class_thread_synch_1_1_pickup_policy_provider__inherit__graph.md5
class_thread_synch_1_1_w_m_pickup_policy__coll__graph.dot
class_thread_synch_1_1_w_m_pickup_policy__coll__graph.md5
class_thread_synch_1_1_w_m_pickup_policy__inherit__graph.dot
class_thread_synch_1_1_w_m_pickup_policy__inherit__graph.md5
doxygen.png
graph_legend.dot
inherit__graph__0.dot
inherit__graph__0.md5
stdafx_8cpp__incl.dot
stdafx_8cpp__incl.md5
stdafx_8h__dep__incl.dot
stdafx_8h__dep__incl.md5
stdafx_8h__incl.dot
stdafx_8h__incl.md5
tab_b.gif
tab_l.gif
tab_r.gif
_async_caller_8cpp__incl.dot
_async_caller_8cpp__incl.md5
_async_caller_8h__dep__incl.dot
_async_caller_8h__dep__incl.md5
_async_caller_8h__incl.dot
_async_caller_8h__incl.md5
_a_p_c_pickup_policy_8h__dep__incl.dot
_a_p_c_pickup_policy_8h__dep__incl.md5
_a_p_c_pickup_policy_8h__incl.dot
_a_p_c_pickup_policy_8h__incl.md5
_callback_info_8h__dep__incl.dot
_callback_info_8h__dep__incl.md5
_call_handler_8h__dep__incl.dot
_call_handler_8h__dep__incl.md5
_call_handler_8h__incl.dot
_call_handler_8h__incl.md5
_call_scheduler_8h__dep__incl.dot
_call_scheduler_8h__dep__incl.md5
_call_scheduler_8h__incl.dot
_call_scheduler_8h__incl.md5
_call_scheduler_exceptions_8h__dep__incl.dot
_call_scheduler_exceptions_8h__dep__incl.md5
_ciritcal_section_8h__dep__incl.dot
_ciritcal_section_8h__dep__incl.md5
_exception_expecter_8h__dep__incl.dot
_exception_expecter_8h__dep__incl.md5
_exception_expecter_8h__incl.dot
_exception_expecter_8h__incl.md5
_functor_retval_binder_8h__dep__incl.dot
_functor_retval_binder_8h__dep__incl.md5
_pickup_policy_provider_8h__dep__incl.dot
_pickup_policy_provider_8h__dep__incl.md5
_pickup_policy_provider_8h__incl.dot
_pickup_policy_provider_8h__incl.md5
_pickup_policy_provider_exceptions_8h__dep__incl.dot
_pickup_policy_provider_exceptions_8h__dep__incl.md5
_thread_base_8cpp__incl.dot
_thread_base_8cpp__incl.md5
_thread_base_8h__dep__incl.dot
_thread_base_8h__dep__incl.md5
_thread_synch_8cpp__incl.dot
_thread_synch_8cpp__incl.md5
_thread_synch_8h__incl.dot
_thread_synch_8h__incl.md5
_throw_hooked_8h__dep__incl.dot
_throw_hooked_8h__dep__incl.md5
_w_m_pickup_policy_8h__incl.dot
_w_m_pickup_policy_8h__incl.md5
latex
annotated.tex
class_async_caller.tex
class_async_caller__coll__graph.dot
class_async_caller__coll__graph.md5
class_callback_info.tex
class_callback_info_1_1_functor_saver.tex
class_critical_section.tex
class_exception_expecter.tex
class_exception_expecter_3_01_e_00_01_b_o_o_s_t___p_p___i_t_e_r_a_t_i_o_n()_4.tex
class_picup_policy_provider.tex
class_thread_base.tex
class_thread_synch_1_1_a_p_c_pickup_policy.tex
class_thread_synch_1_1_a_p_c_pickup_policy__coll__graph.dot
class_thread_synch_1_1_a_p_c_pickup_policy__coll__graph.md5
class_thread_synch_1_1_a_p_c_pickup_policy__inherit__graph.dot
class_thread_synch_1_1_a_p_c_pickup_policy__inherit__graph.md5
class_thread_synch_1_1_call_handler.tex
class_thread_synch_1_1_call_scheduler.tex
class_thread_synch_1_1_call_scheduler__coll__graph.dot
class_thread_synch_1_1_call_scheduler__coll__graph.md5
class_thread_synch_1_1_call_scheduling_failed_exception.tex
class_thread_synch_1_1_call_timeout_exception.tex
class_thread_synch_1_1_functor_retval_binder.tex
class_thread_synch_1_1_pickup_policy_provider.tex
class_thread_synch_1_1_pickup_policy_provider__inherit__graph.dot
class_thread_synch_1_1_pickup_policy_provider__inherit__graph.md5
class_thread_synch_1_1_pickup_scheduling_failed_exception.tex
class_thread_synch_1_1_unexpected_exception.tex
class_thread_synch_1_1_w_m_pickup_policy.tex
class_thread_synch_1_1_w_m_pickup_policy__coll__graph.dot
class_thread_synch_1_1_w_m_pickup_policy__coll__graph.md5
class_thread_synch_1_1_w_m_pickup_policy__inherit__graph.dot
class_thread_synch_1_1_w_m_pickup_policy__inherit__graph.md5
doxygen.sty
files.tex
FreeSans.ttf
hierarchy.tex
Makefile
namespaces.tex
namespacestd.tex
namespace_thread_synch.tex
namespace_thread_synch_1_1details.tex
refman.tex
stdafx_8cpp.tex
stdafx_8cpp__incl.dot
stdafx_8cpp__incl.md5
stdafx_8h.tex
stdafx_8h__dep__incl.dot
stdafx_8h__dep__incl.md5
stdafx_8h__incl.dot
stdafx_8h__incl.md5
_async_caller_8cpp.tex
_async_caller_8cpp__incl.dot
_async_caller_8cpp__incl.md5
_async_caller_8h.tex
_async_caller_8h__dep__incl.dot
_async_caller_8h__dep__incl.md5
_async_caller_8h__incl.dot
_async_caller_8h__incl.md5
_a_p_c_pickup_policy_8h.tex
_a_p_c_pickup_policy_8h__dep__incl.dot
_a_p_c_pickup_policy_8h__dep__incl.md5
_a_p_c_pickup_policy_8h__incl.dot
_a_p_c_pickup_policy_8h__incl.md5
_callback_info_8h.tex
_callback_info_8h__dep__incl.dot
_callback_info_8h__dep__incl.md5
_call_handler_8h.tex
_call_handler_8h__dep__incl.dot
_call_handler_8h__dep__incl.md5
_call_handler_8h__incl.dot
_call_handler_8h__incl.md5
_call_scheduler_8h.tex
_call_scheduler_8h__dep__incl.dot
_call_scheduler_8h__dep__incl.md5
_call_scheduler_8h__incl.dot
_call_scheduler_8h__incl.md5
_call_scheduler_exceptions_8h.tex
_call_scheduler_exceptions_8h__dep__incl.dot
_call_scheduler_exceptions_8h__dep__incl.md5
_ciritcal_section_8h.tex
_ciritcal_section_8h__dep__incl.dot
_ciritcal_section_8h__dep__incl.md5
_exception_expecter_8h.tex
_exception_expecter_8h__dep__incl.dot
_exception_expecter_8h__dep__incl.md5
_exception_expecter_8h__incl.dot
_exception_expecter_8h__incl.md5
_exception_expecter__template_8h.tex
_functor_retval_binder_8h.tex
_functor_retval_binder_8h__dep__incl.dot
_functor_retval_binder_8h__dep__incl.md5
_pickup_policy_provider_8h.tex
_pickup_policy_provider_8h__dep__incl.dot
_pickup_policy_provider_8h__dep__incl.md5
_pickup_policy_provider_8h__incl.dot
_pickup_policy_provider_8h__incl.md5
_pickup_policy_provider_exceptions_8h.tex
_pickup_policy_provider_exceptions_8h__dep__incl.dot
_pickup_policy_provider_exceptions_8h__dep__incl.md5
_thread_base_8cpp.tex
_thread_base_8cpp__incl.dot
_thread_base_8cpp__incl.md5
_thread_base_8h.tex
_thread_base_8h__dep__incl.dot
_thread_base_8h__dep__incl.md5
_thread_synch_8cpp.tex
_thread_synch_8cpp__incl.dot
_thread_synch_8cpp__incl.md5
_thread_synch_8h.tex
_thread_synch_8h__incl.dot
_thread_synch_8h__incl.md5
_throw_hooked_8h.tex
_throw_hooked_8h__dep__incl.dot
_throw_hooked_8h__dep__incl.md5
_w_m_pickup_policy_8h.tex
_w_m_pickup_policy_8h__incl.dot
_w_m_pickup_policy_8h__incl.md5
src
ThreadSynch
ThreadSynchTest
ThreadSynchTestWM
ThreadSynchDemoWM.aps
ThreadSynchTestWM.aps
UnitTests

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Apache License, Version 2.0

Share

About the Author

einaros
Software Developer
Norway Norway
My name is Einar Otto Stangvik, and I'm a programmer based in Oslo, Norway. I mainly develop applications and software architectures targetting C++ on the Windows platform, but I have also got experience doing the same on Unix and Linux. The last few years I've used C# a lot, but native C++ is still my main focus.


As of July 2008, I'm a Microsoft MVP for Visual C++.


Follow me on Twitter: @einaros
My code blog: einaros.blogspot.com
My site: www.indev.no

| Advertise | Privacy | Terms of Use | Mobile
Web04 | 2.8.141223.1 | Last Updated 19 Jul 2007
Article Copyright 2006 by einaros
Everything else Copyright © CodeProject, 1999-2014
Layout: fixed | fluid