<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>WinForms</title><link>https://www.dotnetzone.gr:443/cs/forums/12/ShowForum.aspx</link><description>Θέματα για rich client / windows εφαρμογές, σε οποιαδήποτε γλώσσα (VB.NET, C#, managed C++, κ.α.)</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Re: Φορμα "Please wait" κατά την εκτέλεση απαιτητικής σε χρόνο διαδικασίας</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/1445.aspx</link><pubDate>Wed, 23 Mar 2005 18:01:28 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:1445</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/1445.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=1445</wfw:commentRss><description>Λοιποον το δοκίμασα και πραγματικά παίζει μια χαρά. Ειναι σαφώς ορθότερος τρόπος τώρα που κατάλαβα τι παίζεται με τα threads και τους event handlers. Ευχαριστώ για την άριστη βοήθεια!&lt;br /&gt;</description></item><item><title>Re: Φορμα "Please wait" κατά την εκτέλεση απαιτητικής σε χρόνο διαδικασίας</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/1443.aspx</link><pubDate>Wed, 23 Mar 2005 17:12:55 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:1443</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/1443.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=1443</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Ναι, δίκιο έχεις... Εμένα με προβλημάτισε λίγο το αν θα μπορούσε να γίνει το update των controls μέσα από το ίδιο delegate. Θεωρητικά γίνεται αλλά χμμμ... Ναι, νομίζω δεν θα υπάρχει πρόβλημα...&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Re: Φορμα "Please wait" κατά την εκτέλεση απαιτητικής σε χρόνο διαδικασίας</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/1442.aspx</link><pubDate>Wed, 23 Mar 2005 17:06:44 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:1442</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/1442.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=1442</wfw:commentRss><description>&lt;p&gt;Νομίζω ότι η διπλή κλήση του InvokeRequired είναι περριτή. Μπορείς να αντικαταστήσεις τα δύο If με ένα&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; If m_objFrmWait.InvokeRequired Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;br /&gt;&amp;nbsp; End If&lt;br /&gt;&lt;br /&gt;Η φόρμα και τα control της εκτελούνται στο ίδιο thread, οπότε αρκεί να ελέγξεις αν η φόρμα χρειάζεται Invoke.&lt;br /&gt;&lt;br /&gt;Υπάρχει ένα πολύ καλό βιβλίο για Windows Forms, το &lt;a target="_blank" title="http://www.amazon.co.uk/exec/obidos/ASIN/0321125193/supergenious-21" href="http://www.amazon.co.uk/exec/obidos/ASIN/0321125193/supergenious-21"&gt;Windows Forms Programming in VB.Net&lt;/a&gt;&amp;nbsp;του Crhis Sells που εξηγεί το τί και πως, χωρίς να απλοποιεί τα πράγματα. Έχω το αντίστοιχο για C# και το βρίσκω ανεκτίμητο.&lt;/p&gt;</description></item><item><title>Re: Φορμα "Please wait" κατά την εκτέλεση απαιτητικής σε χρόνο διαδικασίας</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/1440.aspx</link><pubDate>Wed, 23 Mar 2005 16:22:44 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:1440</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/1440.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=1440</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Το είδα και όπως σωστά εντόπισες, επειδή πειράζεις το (Β) από το (Α) χρειάζονται μερικές αλλαγές...&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-ansi-language: EN-GB; mso-bidi-font-size: 10.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;Private&lt;/span&gt; &lt;span style="COLOR: blue"&gt;Sub&lt;/span&gt; DbObjectManager_SpAnalyzed(&lt;span style="COLOR: blue"&gt;ByVal&lt;/span&gt; current &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; Int32, &lt;span style="COLOR: blue"&gt;ByVal&lt;/span&gt; total &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; Int32, &lt;span style="COLOR: blue"&gt;ByVal&lt;/span&gt; spName &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; &lt;span style="COLOR: blue"&gt;String&lt;/span&gt;)&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-ansi-language: EN-GB; mso-bidi-font-size: 10.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;If&lt;/span&gt; m_objFrmWait.ProgrBar.InvokeRequired &lt;span style="COLOR: blue"&gt;Then&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-ansi-language: EN-GB; mso-bidi-font-size: 10.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;m_objFrmWait.ProgrBar.Invoke(&lt;span style="COLOR: blue"&gt;New&lt;/span&gt; UpdateProgBarControlDelegate(&lt;span style="COLOR: blue"&gt;AddressOf&lt;/span&gt; UpdateProgBarControl), &lt;span style="COLOR: blue"&gt;New&lt;/span&gt; &lt;span style="COLOR: blue"&gt;Object&lt;/span&gt;() {m_objFrmWait.ProgrBar, current, total})&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-ansi-language: EN-GB; mso-bidi-font-size: 10.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;Else&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-ansi-language: EN-GB; mso-bidi-font-size: 10.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;UpdateProgBarControl(m_objFrmWait.ProgrBar, current, total)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-ansi-language: EN-GB; mso-bidi-font-size: 10.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;End&lt;/span&gt; &lt;span style="COLOR: blue"&gt;If&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; COLOR: blue; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-ansi-language: EN-GB; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-ansi-language: EN-GB; mso-bidi-font-size: 10.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;If&lt;/span&gt; m_objFrmWait.lblSpName.InvokeRequired &lt;span style="COLOR: blue"&gt;Then&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-ansi-language: EN-GB; mso-bidi-font-size: 10.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;m_objFrmWait.lblSpName.Invoke(&lt;span style="COLOR: blue"&gt;New&lt;/span&gt; UpdateLabelControlDelegate(&lt;span style="COLOR: blue"&gt;AddressOf&lt;/span&gt; UpdateLabelControl), &lt;span style="COLOR: blue"&gt;New&lt;/span&gt; &lt;span style="COLOR: blue"&gt;Object&lt;/span&gt;() {m_objFrmWait.lblSpName, spName})&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-ansi-language: EN-GB; mso-bidi-font-size: 10.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;Else&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-ansi-language: EN-GB; mso-bidi-font-size: 10.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;UpdateLabelControl(m_objFrmWait.lblSpName, spName)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-ansi-language: EN-GB; mso-bidi-font-size: 10.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;End&lt;/span&gt; &lt;span style="COLOR: blue"&gt;If&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-ansi-language: EN-GB; mso-bidi-font-size: 10.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;End&lt;/span&gt; &lt;span style="COLOR: blue"&gt;Sub&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; COLOR: blue; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-ansi-language: EN-GB; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-ansi-language: EN-GB; mso-bidi-font-size: 10.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;Delegate&lt;/span&gt; &lt;span style="COLOR: blue"&gt;Sub&lt;/span&gt; UpdateProgBarControlDelegate(&lt;span style="COLOR: blue"&gt;ByVal&lt;/span&gt; aProgBar &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; ProgressBar, &lt;span style="COLOR: blue"&gt;ByVal&lt;/span&gt; current &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; Int32, &lt;span style="COLOR: blue"&gt;ByVal&lt;/span&gt; total &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; Int32)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-ansi-language: EN-GB; mso-bidi-font-size: 10.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;Delegate&lt;/span&gt; &lt;span style="COLOR: blue"&gt;Sub&lt;/span&gt; UpdateLabelControlDelegate(&lt;span style="COLOR: blue"&gt;ByVal&lt;/span&gt; aLabel &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; Label, &lt;span style="COLOR: blue"&gt;ByVal&lt;/span&gt; spName &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; &lt;span style="COLOR: blue"&gt;String&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-ansi-language: EN-GB; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-ansi-language: EN-GB; mso-bidi-font-size: 10.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;Sub&lt;/span&gt; UpdateProgBarControl(&lt;span style="COLOR: blue"&gt;ByVal&lt;/span&gt; aProgBar &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; ProgressBar, &lt;span style="COLOR: blue"&gt;ByVal&lt;/span&gt; current &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; Int32, &lt;span style="COLOR: blue"&gt;ByVal&lt;/span&gt; total &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; Int32)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-ansi-language: EN-GB; mso-bidi-font-size: 10.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;aProgBar.Maximum = total + 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-ansi-language: EN-GB; mso-bidi-font-size: 10.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;aProgBar.Value = current&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-ansi-language: EN-GB; mso-bidi-font-size: 10.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;End&lt;/span&gt; &lt;span style="COLOR: blue"&gt;Sub&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; COLOR: blue; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-ansi-language: EN-GB; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-ansi-language: EN-GB; mso-bidi-font-size: 10.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;Sub&lt;/span&gt; UpdateLabelControl(&lt;span style="COLOR: blue"&gt;ByVal&lt;/span&gt; aLabel &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; Label, &lt;span style="COLOR: blue"&gt;ByVal&lt;/span&gt; spName &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; &lt;span style="COLOR: blue"&gt;String&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-ansi-language: EN-GB; mso-bidi-font-size: 10.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-bidi-font-size: 10.0pt"&gt;aLabel.Text = spName&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-bidi-font-size: 10.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;End&lt;/span&gt; &lt;span style="COLOR: blue"&gt;Sub&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; mso-bidi-font-size: 12.0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;Νομίζω είσαι ΟΚ τώρα...&lt;br /&gt;&lt;/p&gt;&lt;/font&gt;</description></item><item><title>Re: Φορμα "Please wait" κατά την εκτέλεση απαιτητικής σε χρόνο διαδικασίας</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/1435.aspx</link><pubDate>Tue, 22 Mar 2005 19:42:28 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:1435</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/1435.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=1435</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Μου φαίνεται οτι άγγιξα το twilight zone...&lt;img src="/forums/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;br /&gt;&lt;br /&gt;Παντως έχεις δίκιο, πιό ασφαλές είναι αυτό που προτείνεις. Αν έχεις πάντως χρόνο ρίξε μια ματιά στον κώδικα μπας και τελικά δεν είναι έτσι όπως (νομίζω) οτι τα λέω...&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Re: Φορμα "Please wait" κατά την εκτέλεση απαιτητικής σε χρόνο διαδικασίας</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/1434.aspx</link><pubDate>Tue, 22 Mar 2005 19:28:46 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:1434</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/1434.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=1434</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Αααα... Το μεγάλο ερώτημα... "Γιατί δουλεύει ενώ θεωρητικά δεν θα έπρεπε"&lt;br /&gt;&lt;br /&gt;Χωρίς (ακόμη) να έχω κοιτάξει καλά τον κώδικά σου έχουμε και λέμε:&lt;br /&gt;&lt;br /&gt;Χμμμ... Κατ' αρχήν, τι πάει να πει "δεν θα έπρεπε"; Συνήθως τα προβλήματα ξεκινούν από την στιγμή που αρχίζεις να γράφεις στα properties των controls από δύο (και πάνω) σημεία (threads). Επίσης, είναι πολύ πιθανό να τρέξεις 10 φορές τον κώδικα και να μην βρεις λάθος και να σου χτυπήσει στην 11η. Και μάλιστα, αυτού του είδους τα λάθη είναι δύσκολο να τα αναπαραγάγεις ώστε να κάνεις το debugging. &lt;br /&gt;&lt;br /&gt;Ενδέχεται πάντως να μην έχεις κανένα πρόβλημα αν κάνεις μόνο read τα properties ή τα αλλάζεις μόνο από ένα thread, αλλά όπως και είπα παραπάνω, θέλει προσοχή μην κάνεις κάτι μελλοντικά που θα αλλάξει κάτι από αυτά τα δύο&amp;nbsp;ή ακόμα χειρότερα μην αναλάβει/συνεχίσει κάποιος άλλος&amp;nbsp;τον κώδικά σου που δεν γνωρίζει τους κανόνες. Θα έλεγα να δοκιμάσεις το InvokeRequired για να είσαι στο safe side...&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Re: Φορμα "Please wait" κατά την εκτέλεση απαιτητικής σε χρόνο διαδικασίας</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/1433.aspx</link><pubDate>Tue, 22 Mar 2005 19:03:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:1433</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/1433.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=1433</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;table width="85%"&gt;&lt;tr&gt;&lt;td class="txt4"&gt;&lt;img src="/forums/Themes/default/images/icon-quote.gif"&gt;&amp;nbsp;&lt;strong&gt;KelMan wrote:&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="quoteTable"&gt;&lt;table width="100%"&gt;&lt;tr&gt;&lt;td width="100%" valign="top" class="txt4"&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;Ορίστε, να έχεις δουλειά να κάνεις και να πέφτουν τέτοια ενδιαφέροντα &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;posts&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;…&lt;br /&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;&lt;o:p&gt;&lt;font face="Verdana" size="2"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/BLOCKQUOTE&gt;&lt;br /&gt;&lt;br /&gt;In fact, δεν είχα δουλειά να κάνω &lt;img src="/forums/emoticons/emotion-1.gif" alt="Smile" /&gt;&amp;nbsp;Χεχε, τελευταία η δουλειά μου συνίσταται σε activity diagrams και mindmaps, οπότε δεν έχω υλικό να σας δώσω για εδώ. Που και που ομως "δραπετεύω" με κατι πιό ενδιαφέρον &lt;img src="/forums/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;&lt;o:p&gt;Λες τώρα το εξής:&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;&lt;font face="Verdana" size="2"&gt;&lt;br /&gt;&lt;BLOCKQUOTE&gt;&lt;table width="85%"&gt;&lt;tr&gt;&lt;td class="txt4"&gt;&lt;img src="/forums/Themes/default/images/icon-quote.gif"&gt;&amp;nbsp;&lt;strong&gt;KelMan wrote:&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="quoteTable"&gt;&lt;table width="100%"&gt;&lt;tr&gt;&lt;td width="100%" valign="top" class="txt4"&gt;&lt;/font&gt;&amp;nbsp;&lt;b style="mso-bidi-font-weight: normal"&gt;«Πάντοτε πειράζουμε τα &lt;/b&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;controls&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;μόνο μέσα από το &lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;thread&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;που ανήκουν (αυτό της φόρμας που τα δημιούργησε)». &lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;&lt;o:p&gt;&lt;font face="Verdana" size="2"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/BLOCKQUOTE&gt;&lt;br /&gt;&lt;br /&gt;Κρατάω αυτόν τον κανόνα και τον εξετάζω σε&amp;nbsp;συνδυασμό με το δεύτερο πράγμα που λες:&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;&lt;o:p&gt;&lt;font face="Verdana" size="2"&gt;&lt;BLOCKQUOTE&gt;&lt;table width="85%"&gt;&lt;tr&gt;&lt;td class="txt4"&gt;&lt;img src="/forums/Themes/default/images/icon-quote.gif"&gt;&amp;nbsp;&lt;strong&gt;KelMan wrote:&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="quoteTable"&gt;&lt;table width="100%"&gt;&lt;tr&gt;&lt;td width="100%" valign="top" class="txt4"&gt;&lt;/font&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;Το δεύτερο πράγμα που μας ενδιαφέρει είναι αν θέλουμε να μας επιστρέφονται τιμές από το &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;thread&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;το οποίο δημιουργήσαμε. Για να γίνει κάτι τέτοιο, χρειάζεται να ξέρουμε πότε τελείωσε το &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;thread&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;οπότε σε αυτή την περίπτωση μπορούμε είτε να δουλέψουμε με &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;Raise&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;Event&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;ή με &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;delegates&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;για να περάσουμε τιμές σε κάποια συγκεκριμένη μέθοδο όταν τελειώσει το &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;thread&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;. Εδώ και πάλι χρειάζεται προσοχή όπως παραπάνω σχετικά με το αν πρέπει να πειράξουμε &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;controls&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;γιατί οι &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;event&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;handlers&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;τρέχουν στο &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;context&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;του &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;thread&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;που έκανε &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;raise&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;το &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;event&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/BLOCKQUOTE&gt;&lt;br /&gt;&lt;br /&gt;Εδώ λοιπόν έχω την εξής απορία: Ο κώδικας που έκανα post συνίσταται από ένα module το οποίο κάνει δύο δουλειές: Α) Σηκώνει ένα thread που κάνει τη "χοντρή δουλειά" και πετάει events (αρχισα, επεξεργάστηκα κάτι, τελείωσα) και Β) Σηκώνει τη "please wait" φόρμα. Μεσα σε αυτό το module έχω ορίσει event handlers για το (Α), οι οποίοι πειράζουν τα controls του (Β).&lt;br /&gt;&lt;br /&gt;Φαίνεται οτι λειτουργεί κανονικά. Αλλα εφόσον οι event handlers όπως λες παραπάνω τρέχουν στο context του thread που έκανε raise το event, τότε ουσιαστικά πειράζω το (Β) από το (Α). Αυτό δεν θα έπρεπε λογικά να λειτουργεί. Η ερώτησή μου είναι: Γιατί δουλεύει ενώ θεωρητικά δεν θα έπρεπε;&lt;br /&gt;&lt;br /&gt;Οσο για το InvokeRequired/BeginInvoke, πολύ χρήσιμα αυτά που έγραψες και θα τα δοκιμάσω μόλις βρεθεί χρόνος.&lt;br /&gt;&lt;br /&gt;</description></item><item><title>Re: Φορμα "Please wait" κατά την εκτέλεση απαιτητικής σε χρόνο διαδικασίας</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/1432.aspx</link><pubDate>Tue, 22 Mar 2005 17:17:50 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:1432</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/1432.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=1432</wfw:commentRss><description>&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;Ορίστε, να έχεις δουλειά να κάνεις και να πέφτουν τέτοια ενδιαφέροντα &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;posts&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;…&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;Λοιπόν, δεν πρόλαβα να δω καλά τον κώδικά σου, αλλά γενικά υπάρχουν συνήθως δύο πράγματα που μας ενδιαφέρουν όταν παίζουμε με τα &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;threads&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;Το πρώτο είναι αν θέλουμε να ενημερώνουμε τις τιμές των &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;controls&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;μιας φόρμας μέσα από ένα άλλο &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;thread&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;. Γενικά, οι φόρμες είναι σχεδιασμένες να δουλεύουν &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;single&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;-&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;threaded&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;όπερ σημαίνει ότι ο χρυσός κανόνας είναι &lt;b style="mso-bidi-font-weight: normal"&gt;«Πάντοτε πειράζουμε τα &lt;/b&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;controls&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;μόνο μέσα από το &lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;thread&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;που ανήκουν (αυτό της φόρμας που τα δημιούργησε)». &lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;Αν δεν το κάνουμε, στην περίπτωση που απλά διαβάζουμε τα &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;properties&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;τους δεν δημιουργείται μεγάλο πρόβλημα, ωστόσο, μεγάλα &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;projects&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;γράφουμε, πολλές σκοτούρες έχουμε, είναι θέμα χρόνου πότε θα το ξεχάσουμε/μπερδέψουμε/__________ (συμπλήρωσε το κενό) και θα κάνουμε ανάθεση σε &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;property&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;. Για να αποφύγουμε λοιπόν αυτό το πρόβλημα, που όπως όλοι ξέρουμε είναι ό,τι χειρότερο μπορεί να σου τύχει σε &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;debugging&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;, η λύση είναι μία:&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;Κάθε &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;control&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;έχει ένα &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;property&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;που λέγεται &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;InvokeRequired&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;(ανήκει στην κλάση &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;Control&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;) το οποίο επιστρέφει &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;True&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;αν το τρέχον &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;thread&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;που το κάνει &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;access&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;δεν είναι το &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;thread&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;που δημιούργησε το &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;control&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;. Οπότε, ρωτάμε, και αν είναι &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;True&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;, τότε καλούμε την &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;Invoke&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;μέθοδο του &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;control&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;χρησιμοποιώντας ένα &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;delegate&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;και ενδεχομένως ένα &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;parameter&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;array&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;τύπου &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;Object&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;. Το μυστικό είναι ότι το &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;control&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;χρησιμοποιεί το &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;delegate&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;για να καλέσει τη μέθοδο στο &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;context&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;του δικού του &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;thread&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;!&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;Το δεύτερο πράγμα που μας ενδιαφέρει είναι αν θέλουμε να μας επιστρέφονται τιμές από το &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;thread&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;το οποίο δημιουργήσαμε. Για να γίνει κάτι τέτοιο, χρειάζεται να ξέρουμε πότε τελείωσε το &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;thread&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;οπότε σε αυτή την περίπτωση μπορούμε είτε να δουλέψουμε με &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;Raise&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;Event&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;ή με &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;delegates&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;για να περάσουμε τιμές σε κάποια συγκεκριμένη μέθοδο όταν τελειώσει το &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;thread&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;. Εδώ και πάλι χρειάζεται προσοχή όπως παραπάνω σχετικά με το αν πρέπει να πειράξουμε &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;controls&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;γιατί οι &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;event&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;handlers&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;τρέχουν στο &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;context&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;του &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;thread&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;που έκανε &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;raise&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;το &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma; mso-ansi-language: EN-US"&gt;event&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Tahoma"&gt;.&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Φορμα "Please wait" κατά την εκτέλεση απαιτητικής σε χρόνο διαδικασίας</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/1429.aspx</link><pubDate>Mon, 21 Mar 2005 21:33:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:1429</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/1429.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=1429</wfw:commentRss><description>&lt;P class=source&gt;Απο Winforms γενικά δεν είμαι και πολύ δυνατός. Ηθελα να φτιάξω λοιπον μια ωραία φορμίτσα που θα μου λέει "Please wait" όταν εγώ θα έτρεχα μια χρονοβόρα διαδικασία από πίσω...&lt;BR&gt;&lt;BR&gt;Τελικα κατέληξα στη λύση του να βάλω τη διαδικασια σε ένα thread και να μιλάω μέσω ενός module με τη φόρμα χρησιμοποιώντας events. &lt;BR&gt;&lt;BR&gt;Θα ήθελα να μου πείτε αν αυτή η λύση είναι πολύ "μπακάλικη", είναι ομως η μόνη απλή λύση που βρήκα για να έχω και "Please wait" και φορμα η οποία δεν "κολλάει" (hint, hint, εχει και animated εικονιδιάκι και ήθελα να ΚΑΝΕΙ animate το ατιμο :) )&lt;BR&gt;&lt;BR&gt;Ριξτε μια ματια στον κώδικα, για τα σχόλια χρησιμοποιώ VBXC για να πάνε μετά στο nDoc. Δεν είναι τίποτα σπουδαίο, προχειρογραμμένο είναι, απλά για να μου πειτε αν το concept είναι ορθό. Καθε συμβουλή ευπρόσδεκτη!&lt;/P&gt;
&lt;P class=source&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=source&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;&lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// Starting point of the application.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// Presents a form to prompt the user for db login information, then starts &lt;/span&gt;&lt;br /&gt;&lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// executing a long-running procedure while presenting a "please wait" form.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// Finally, it presents the main application form.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Module&lt;/span&gt; mdlMain&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// Holds the "Please wait" form instance&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Private&lt;/span&gt; m_objFrmWait &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;As&lt;/span&gt; frmPleaseWait&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// Holds the connection string retrieved by the "Connect to" form&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Private&lt;/span&gt; m_strConn &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;As&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;String&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// Module starting point&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Public&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Sub&lt;/span&gt; Main()&lt;br /&gt;        &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Dim&lt;/span&gt; strConn &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;As&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;String&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Dim&lt;/span&gt; objFrmLogin &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;As&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;New&lt;/span&gt; frmLogin&lt;br /&gt;        &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'Add handlers for DbObjectManager events&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;AddHandler&lt;/span&gt; DbObjectManager.SPAnalysisStarted, &lt;span style="color: Red;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;AddressOf&lt;/span&gt; DBObjectManager_SpAnalysisStarted&lt;br /&gt;        &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;AddHandler&lt;/span&gt; DbObjectManager.SPAnalyzed, &lt;span style="color: Red;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;AddressOf&lt;/span&gt; DbObjectManager_SpAnalyzed&lt;br /&gt;        &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;AddHandler&lt;/span&gt; DbObjectManager.SPAnalysisEnded, &lt;span style="color: Red;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;AddressOf&lt;/span&gt; DBObjectManager_SpAnalysisEnded&lt;br /&gt;        &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'Show the login form&lt;/span&gt;&lt;br /&gt;        objFrmLogin.ShowDialog()&lt;br /&gt;        &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'Assuming that connection info is ok - the login form takes care of that&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;If&lt;/span&gt; objFrmLogin.DialogResult &lt;span style="color: Red;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;=&lt;/span&gt; DialogResult.OK &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Then&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'Assign the connection string here&lt;/span&gt;&lt;br /&gt;            m_strConn &lt;span style="color: Red;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;=&lt;/span&gt; objFrmLogin.ConnectionString()&lt;br /&gt;            &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'Get rid of the stupid thing&lt;/span&gt;&lt;br /&gt;            objFrmLogin.Close()&lt;br /&gt;            objFrmLogin.Dispose()&lt;br /&gt;            &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'Create a thread to execute the long-running process and start it&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Dim&lt;/span&gt; thrdGetData &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;As&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;New&lt;/span&gt; System.threading.Thread(&lt;span style="color: Red;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;AddressOf&lt;/span&gt; GetSPDefs)&lt;br /&gt;            thrdGetData.Start()&lt;br /&gt;            &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'Ok, the thread has started. For the sake of clarity, we don't have any&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'code to catch Thread Abort exceptions, although we should. &lt;/span&gt;&lt;br /&gt;            &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'Now present the "please wait" form.&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'As you can see, there's a progress bar updated by events thrown by&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'DbObjectManager plus various other bullshit like an animated picture box etc.&lt;/span&gt;&lt;br /&gt;            m_objFrmWait &lt;span style="color: Red;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;New&lt;/span&gt; frmPleaseWait&lt;br /&gt;            m_objFrmWait.ProgrBar.Value &lt;span style="color: Red;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;=&lt;/span&gt; 0&lt;br /&gt;            m_objFrmWait.ProgrBar.Visible &lt;span style="color: Red;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;False&lt;/span&gt;&lt;br /&gt;            m_objFrmWait.PictureBox1.Refresh()&lt;br /&gt;            m_objFrmWait.lblSpName.Text &lt;span style="color: Red;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;"Retrieving stored procedure definitions. Please wait..."&lt;/span&gt;&lt;br /&gt;            m_objFrmWait.lblSpName.Refresh()&lt;br /&gt;            &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'Show dialog so as not to let the execution halt here.&lt;/span&gt;&lt;br /&gt;            m_objFrmWait.ShowDialog()&lt;br /&gt;        &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;End&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;If&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;End&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Sub&lt;/span&gt;&lt;br /&gt;&amp;lt;P &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;class&lt;/span&gt;=&lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;source&lt;/span&gt;&amp;gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// This is our thread. It executes the boring DB query stuff that takes a long time&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// If you are curious to find out what it does, it creates a beautiful xml file &lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// containing all stored procedure dependencies in a database by analyzing the SP code&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// not the sysdepends table. It takes quite a while, analyzing SPs one-by-one. &lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Private&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Sub&lt;/span&gt; GetSPDefs()&lt;br /&gt;        &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'Initialize the stupid thing - it's shared giati etsi mas aresei.&lt;/span&gt;&lt;br /&gt;        DbObjectManager.Initialize(m_strConn)&lt;br /&gt;        &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'Do the dirty work&lt;/span&gt;&lt;br /&gt;        DbObjectManager.GetData()&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;End&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Sub&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// This is an event that shows that an SP has been analyzed. All it does is update&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// the progress bar of the "please wait" form&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// &amp;lt;param name="current"&amp;gt;The number of the current stored procedure analyzed as compared to the total number of SPs to analyze&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// &amp;lt;param name="total"&amp;gt;The total number of SPs to analyze&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// &amp;lt;param name="spName"&amp;gt;The name of the specific SP&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Private&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Sub&lt;/span&gt; DbObjectManager_SpAnalyzed(&lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;ByVal&lt;/span&gt; current &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;As&lt;/span&gt; Int32, &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;ByVal&lt;/span&gt; total &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;As&lt;/span&gt; Int32, &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;ByVal&lt;/span&gt; spName &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;As&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;String&lt;/span&gt;)&lt;br /&gt;        m_objFrmWait.ProgrBar.Visible &lt;span style="color: Red;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;True&lt;/span&gt;&lt;br /&gt;        m_objFrmWait.ProgrBar.Maximum &lt;span style="color: Red;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;=&lt;/span&gt; total &lt;span style="color: Red;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;+&lt;/span&gt; 1&lt;br /&gt;        m_objFrmWait.ProgrBar.Value &lt;span style="color: Red;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;=&lt;/span&gt; current&lt;br /&gt;        m_objFrmWait.lblSpName.Text &lt;span style="color: Red;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;=&lt;/span&gt; spName&lt;br /&gt;        m_objFrmWait.lblSpName.Refresh()&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;End&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Sub&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// This used to do something, now it doesn't. Just kept it because I may find a &lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// use for it later on. Shows that the analysis has been started. What does that mean?&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// Ok, a long-running query has been run before the analysis starts to gather all SPs and definitions&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// ripping off the comments. This event shows that the query has ended and the analysis has started&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Private&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Sub&lt;/span&gt; DBObjectManager_SpAnalysisStarted()&lt;br /&gt;        &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'Too lazy for now, maybe I'll work on it later&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;End&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Sub&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// This is raised at the end of the long-running procedure.&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Private&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Sub&lt;/span&gt; DBObjectManager_SpAnalysisEnded()&lt;br /&gt;        m_objFrmWait.Close()&lt;br /&gt;        &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'m_objFrmWait.Dispose() 'Kept making me mad, this one.&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: Green;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;'Now show the main application form.&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Dim&lt;/span&gt; objFrmMain &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;As&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;New&lt;/span&gt; frmMain(m_strConn)&lt;br /&gt;        objFrmMain.ShowDialog()&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;End&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Sub&lt;/span&gt;&lt;br /&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;End&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Lucida Console;font-size: 11px;font-weight: normal;"&gt;Module&lt;/span&gt;&lt;/span&gt;
&lt;P&gt;&lt;/P&gt;</description></item></channel></rss>