.NET
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic to the Top
- Bookmark
- Subscribe
- Printer Friendly Page
Re: Create DBTEXT element in Background Worker vb .net?
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Exactly. When your worker finishes you could return a collection of ObjectIds to the main thread. Then you wouldn't have to search for them, nor would you be unnecessarily opening and applying the DBText.AdjustAlignment() method to text entities that existed in the database before you ran the worker.
I'm not sure how much difference this will make. I'm thinking it would depend upon on how many other entities (particularly text entities) you have in your drawings. But this is what I would do.
For an example of how to return data from a background worker you can refer to the "Return a value from the background operation" at the bottom of this post :
http://www.c-sharpcorner.com/uploadfile/Ashush/usi
Art
Re: Create DBTEXT element in Background Worker vb .net?
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
I understand I did what you recommended and it worked perfectly, had a gain in performance and I am pleased with the results, and again thank Artvegas!
Re: Create DBTEXT element in Background Worker vb .net?
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
I just wanted to re-iterate the warning that someone else already made that AcDb (the entity code) is absolutely not multi-thread safe. So, while your background thread is running, if the Acad main thread does anything that uses any of the AcDb code that text is using, you are very likely to have problems.
Re: Create DBTEXT element in Background Worker vb .net?
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Re: Create DBTEXT element in Background Worker vb .net?
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
I understand that the risk of performing transactions outside the main thread can cause problems, but I've imported some 368,000 objects between (Polylines, Text, Blocks etc. ..), and so far had no problems, saved the file its countless times and performed tests and everything is correct. Yet another study it more secure way to do the job, and I am studying the proposal made in a video (taget Gopinath, member of the Autodesk Developer), which teaches how to work with multi-thread smoothly.
Parallel Programming in an AutoCAD® Application
http://au.autodesk.com/?nd=class&session_id=8975
Thank Staff.
Re: Create DBTEXT element in Background Worker vb .net?
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Hi prmgame,
I just came across a link for another class at Autodesk University...
Multithreading and Message Handling in Windows® Presentation Foundation (WPF) Applications:
http://au.autodesk.com/?nd=class&session_id=8964
And the class description...
"If your AutoCAD® plug-in spends a long time processing data, you know how frustrated your users can get when their user interface freezes or Windows shows that all too familiar "Program Not Responding" message. How do you prevent that? Depending on what you are doing, you have a choice between message handling and multithreading. This class will show you when to use each technique and how to handle them both from within your WPF user interface."
I haven't watched it yet but it seems that this discusses the exact issue you are trying to address - so hopefully will be most useful to you.
Re: Create DBTEXT element in Background Worker vb .net?
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Hello Artvegas,
Yes, I'm watching the videos Autodesk AU, no doubt I'll be doing tests with the examples shown.


