Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 182145
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T14:53:16+00:00 2026-05-11T14:53:16+00:00

How can I force a section of code to be executed on my main

  • 0

How can I force a section of code to be executed on my main thread?

This is why I’d like to know:

I have a custom created message box that at times gets shown from a thread that is not the main thread. However, when the message box constructor is called I get an InvalidOperationException saying ‘The calling thread must be STA, because many UI components require this.’ This makes sense, UI elements need to be handled on the main thread.

My MessageBox.ShowMessage(…) function is a static function that creates an instance of my custom message box and shows it. Is there a something I could put in ShowMessage that would force the message box to be created and shown on the main thread? Elsewhere in my code I use the Control.BeginInvoke to handle similar issues, but since it is a static function there is no already existing UI element for me to call BeginInvoke on.

Do I have to call MessageBox.ShowMessage from with a Control.BeginInvoke? I’d prefer the BeginInvoke (or some equivalent) to be called from within ShowMessage.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-11T14:53:17+00:00Added an answer on May 11, 2026 at 2:53 pm

    There are a few options here:

    • make the second thread STA (you can only do this for your own Thread – not for ThreadPool threads) – via .SetApartmentState(ApartmentState.STA);
    • see if SynchronizationContext.Current is non-null; if so, use Send/Post
    • pass the form/control in as an ISynchronizeInvoke instance (may not apply to WPF – I’m not 100% sure)
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Does anyone know how I can force CanExecute to get called on a custom
can I force the DBML designer to use my custom types instead of the
How can I force validation when user clicks button? One would think this should
I have this code : try { result.FirstName = nodes[myIdx] .Attributes["ows_FirstName"].Value; } catch {
I can't force msvc10 to put my const object into .rdata section. It always
I have this piece of code: div#permalink_section { width: 960px } <div id='permalink_section'> <a
I have a standard webservice in ASP .Net 4.0 defined like this: [WebMethod] public
In .NET configuration, you can write your own configuration section and have quite a
On Visual studio I can force use of 32-bit time_t by declaring _USE_32BIT_TIME_T .
I was wondering how i can force a user who has requested a page

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.