Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by mlr@msft · Mar 06, 2013 at 08:47 PM · threadsblockqueuesleep

Effects of blocking the main thread in Unity

I am investigating whether Unity could be used as an event processor, pulling messages from a queue and going to sleep when the queue is empty.

What are the side-effects of blocking the main thread in Unity? Are there any problems that could arise from intentionally blocking for a long period of time? For example, could the engine state become inconsistent if the main thread sleeps for a significant period of time?

Please disregard the effect blocking would have on the user experience for the purposes of this question.

Thanks in advance.

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by Landern · Mar 06, 2013 at 08:49 PM

If you block the main thread it will appear that the engine is frozen and the application needs to be closed, that is a horrible user experience. Use non-blocking code or spawn a new thread with background set to true, don't try and modify variables from the main thread, delegate back all of your changes and work completed, rinse, repeat, win.

Edit: be aware of some non-blocking code not actually being used on another thread, instead it slices up the cpu allocation for your application(not the entire cpu) which can make the game look slow.

What are you trying to do?

Edit with OP update: You will probably just have to test it. I can't think of a reasonable reason why the engine would just take a turd because you sleep the main thread, it should pick up right where you left off regardless if you Thread.Sleep(500) or Thread.Sleep(5000000).

I say test it since think falls into an odd edge case if you are going to pause the thread and resume... this isn't what 99.9%(made up stat) of the users use the engine for. Try it, the test case would be simple, let us know. :)

Comment
Add comment · Show 1 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image mlr@msft · Mar 06, 2013 at 09:09 PM 0
Share

Thanks for taking the time to respond.

I am aware of the effects this would have on the user experience. $$anonymous$$y question is not concerned with performance. $$anonymous$$y apologies for not being clear; I will update the question.

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

11 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Is the Unity API threadsafe? 2 Answers

Problem Using ThreadPool in Unity Android 0 Answers

play animation sequence 3 Answers

Unity Threading Issue: Not able to delegate task 0 Answers

Google Daydream Thread with Unity 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges