<?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: Ερώτηση</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/1767.aspx</link><pubDate>Thu, 28 Apr 2005 18:53:36 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:1767</guid><dc:creator>gsint</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/1767.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=1767</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;&lt;font color="#ff0000"&gt;Συγγνώμη αλλά δεν κατάλαβα, τι μου λέτε...&lt;br /&gt;&lt;br /&gt;Ας αφήσουμε το SqlDataReader στην άκρη και ας δούμε ξεχωριστά το θέμα του thread.&lt;br /&gt;&lt;br /&gt;1. Η displayDataGrid2 δουλεύει από μόνη της, αρα;;; Με την "aDataGrid2.MdiParent = Me" μου σκάει run-time error πως σε ένα thread δεν μπορώ να έχω reference εκτός του thread. ok, αλλά και πάλι η φόρμα εμφανίζεται στην οθόνη και "χάνεται" από μόνη της... Τι μπορεί να συμβαίνει;;;&lt;br /&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#ff0000"&gt;Private&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2"&gt;Sub&lt;/font&gt;&lt;font size="2"&gt; MenuItem7_Click(&lt;/font&gt;&lt;font size="2"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; sender &lt;/font&gt;&lt;font size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; System.Object, &lt;/font&gt;&lt;font size="2"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; e &lt;/font&gt;&lt;font size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; System.EventArgs) &lt;/font&gt;&lt;font size="2"&gt;Handles&lt;/font&gt;&lt;font size="2"&gt; MenuItem7.Click&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt; &lt;p&gt;'displayDataGrid2()&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;font color="#ff0000"&gt;Dim&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font size="2"&gt; objThread &lt;/font&gt;&lt;font size="2"&gt;As&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#ff0000"&gt; Thread&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#ff0000"&gt;objThread = &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font size="2"&gt;New&lt;/font&gt;&lt;font size="2"&gt; Thread(&lt;/font&gt;&lt;font size="2"&gt;AddressOf&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#ff0000"&gt; displayDataGrid2)&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#ff0000"&gt;objThread.Start()&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;font color="#ff0000"&gt;End&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt; &lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#ff0000"&gt;Sub&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#ff0000"&gt;Private&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2"&gt;Sub&lt;/font&gt;&lt;font size="2"&gt; displayDataGrid2()&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;font color="#ff0000"&gt;Dim&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font size="2"&gt; aDataGrid2 &lt;/font&gt;&lt;font size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; DataGrid2 = &lt;/font&gt;&lt;font size="2"&gt;New&lt;/font&gt;&lt;font size="2"&gt; DataGrid2&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt; &lt;p&gt;'aDataGrid2.MdiParent = Me&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;font color="#ff0000"&gt;aDataGrid2.Show()&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#ff0000"&gt;aDataGrid2.Refresh()&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;font color="#ff0000"&gt;End&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;Sub&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Οπως είπα και παραπάνω έχω μια απλή φόρμα και θέλω να την ανοίξω μια mdi child (αυτό δεν είναι 100% απαραίτητο, είναι&amp;nbsp;όμως επιθυμητό) σε άλλο thread. Γίνεται; Και αν ναι πως; Ο κώδικας που παραθέτω δείχνει την φόρμα, η οποία αμέσως εξαφανίζεται !!! &lt;br /&gt;&lt;br /&gt;Ευχαριστώ για τον χρόνο σας&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Re: Ερώτηση</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/1754.aspx</link><pubDate>Thu, 28 Apr 2005 03:52:15 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:1754</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/1754.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=1754</wfw:commentRss><description>&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.0pt"&gt;Ορίστε ένα ολοκληρωμένο παράδειγμα για ασύγχρονο fill του dataset (φτάνουν 4Μ εγγραφές&lt;img src="/forums/emoticons/emotion-5.gif" alt="Wink" /&gt;. Η διαφοροποίηση σε ότι είχαμε πει στο post που σου είχα προτείνει να διαβάσεις είναι ότι εδώ δεν υπάρχει η ανάγκη να κάνεις update τα controls της φόρμας κατά τη διάρκεια του long-running-operation ήτοι το fill του dataset, αλλά απλά να κάνεις bind το datagrid μόλις τελειώσει το fill. Πρόσεξε γιατί εδώ το &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 style="FONT-SIZE: 8pt; FONT-FAMILY: Tahoma; 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 style="FONT-SIZE: 8pt; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.0pt"&gt;DataGrid1.CaptionText = ...&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 style="FONT-SIZE: 8pt; FONT-FAMILY: Tahoma; 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 style="FONT-SIZE: 8pt; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.0pt"&gt;είναι παράνομο και πρέπει να γίνεται όπως έχουμε πει στο συγκεκριμένο post, απλά το χρησιμοποίησα για να μην επεκταθεί πολύ ο κώδικας.&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: Tahoma; mso-bidi-font-size: 10.0pt; 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; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.0pt"&gt;Το μόνο που χρειάζεται είναι να κάνεις copy/paste τον κώδικα σε μια φορμούλα με ένα datagrid και δύο buttons, να έχεις sql server και τη northwind...&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 style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; 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 style="FONT-SIZE: 6pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; 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; COLOR: blue; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;Dim&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt; fillerThread &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; Thread&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; COLOR: blue; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;Dim&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt; fillerThreadStart &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; &lt;span style="COLOR: blue"&gt;New&lt;/span&gt; ThreadStart(&lt;span style="COLOR: blue"&gt;AddressOf&lt;/span&gt; QueryDataBase)&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; COLOR: blue; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;Dim&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt; DataGridBinder &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; &lt;span style="COLOR: blue"&gt;New&lt;/span&gt; MethodInvoker(&lt;span style="COLOR: blue"&gt;AddressOf&lt;/span&gt; &lt;span style="COLOR: blue"&gt;Me&lt;/span&gt;.BindDataGrid)&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&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; COLOR: blue; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;Dim&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt; cnNorthwind &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; &lt;span style="COLOR: blue"&gt;New&lt;/span&gt; SqlConnection("data source=localhost;initial catalog=northwind;integrated security=SSPI;")&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; COLOR: blue; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;Dim&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt; daProducts &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; &lt;span style="COLOR: blue"&gt;New&lt;/span&gt; SqlDataAdapter("SELECT Products.* FROM Orders CROSS JOIN Products CROSS JOIN Products Customers", cnNorthwind)&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; COLOR: blue; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;Dim&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt; dsNorthwind &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; &lt;span style="COLOR: blue"&gt;New&lt;/span&gt; DataSet&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&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; COLOR: blue; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;Public&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt; &lt;span style="COLOR: blue"&gt;Sub&lt;/span&gt; BindDataGrid()&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;DataGrid1.DataSource = dsNorthwind&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;DataGrid1.DataMember = "BigTable"&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;daProducts = &lt;span style="COLOR: blue"&gt;Nothing&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;dsNorthwind = &lt;span style="COLOR: blue"&gt;Nothing&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;End&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&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; COLOR: blue; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;Public&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt; &lt;span style="COLOR: blue"&gt;Sub&lt;/span&gt; QueryDataBase()&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;Try&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;cnNorthwind.Open()&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;DataGrid1.CaptionText = "Running query..."&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;daProducts.Fill(dsNorthwind, "BigTable")&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;DataGrid1.CaptionText = "Query complete."&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;Me&lt;/span&gt;.BeginInvoke(DataGridBinder)&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;Catch&lt;/span&gt; thEx &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; ThreadAbortException&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR: blue"&gt;Finally&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;cnNorthwind.Close()&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;cnNorthwind.Dispose()&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;cnNorthwind = &lt;span style="COLOR: blue"&gt;Nothing&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;fillerThread = &lt;span style="COLOR: blue"&gt;Nothing&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&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;Try&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;End&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&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; COLOR: blue; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;Private&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt; &lt;span style="COLOR: blue"&gt;Sub&lt;/span&gt; Button1_Click(&lt;span style="COLOR: blue"&gt;ByVal&lt;/span&gt; sender &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; System.Object, &lt;span style="COLOR: blue"&gt;ByVal&lt;/span&gt; e &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; System.EventArgs) &lt;span style="COLOR: blue"&gt;Handles&lt;/span&gt; Button1.Click&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;fillerThread = &lt;span style="COLOR: blue"&gt;New&lt;/span&gt; Thread(fillerThreadStart)&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;fillerThread.IsBackground = &lt;span style="COLOR: blue"&gt;True&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;fillerThread.Name = "UpdateThread"&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;fillerThread.Start()&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; COLOR: blue; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;End&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&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; COLOR: blue; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;Private&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt; &lt;span style="COLOR: blue"&gt;Sub&lt;/span&gt; Button2_Click(&lt;span style="COLOR: blue"&gt;ByVal&lt;/span&gt; sender &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; System.Object, &lt;span style="COLOR: blue"&gt;ByVal&lt;/span&gt; e &lt;span style="COLOR: blue"&gt;As&lt;/span&gt; System.EventArgs) &lt;span style="COLOR: blue"&gt;Handles&lt;/span&gt; Button2.Click&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;fillerThread.Abort()&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-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;DataGrid1.CaptionText = "Query cancelled."&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; COLOR: blue; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt;End&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Sans Typewriter Regular'; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-GB"&gt; &lt;span style="COLOR: blue"&gt;Sub&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: blue; mso-bidi-font-size: 10.0pt"&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; COLOR: blue; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;font face="Times New Roman"&gt;&amp;nbsp;&lt;/font&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; COLOR: blue; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;font face="Times New Roman"&gt;&amp;nbsp;&lt;/font&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; COLOR: blue; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;font face="Times New Roman"&gt;&amp;nbsp;&lt;/font&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 style="FONT-SIZE: 8pt; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.0pt"&gt;Και καθώς έγραφα αυτό το post, τσουπ! Έρχεται το post του gcapnias…&lt;br /&gt;&lt;o:p&gt;&lt;font face="Verdana"&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;gcapnias 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;br /&gt;Μήπως στην συγκεκριμένη περίπτωση θα ήταν καλύτερα να δηλώσουμε ένα Delegate και να ξεκινήσουμε το Thread με BeginInvoke και να του περνάμε ένα dataset και να το παίρνουμε πίσω; Υπόθεση κάνουμε...&lt;br /&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;/font&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 style="FONT-SIZE: 8pt; FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&lt;font face="Verdana"&gt;Όχι, δεν χρειάζεται να κάνει βόλτες το DataSet... Tο κόλπο είναι να χρησιμοποιήσεις δύο delegates, ένα το ThreadStart και ένα το MethodInvoker. Το πρώτο κάνει την δουλειά που θέλουμε και το δεύτερο ανανεώνει τη φόρμα γιατί όπως είπαμε "Το μυστικό είναι ότι το control χρησιμοποιεί το delegate για να καλέσει τη μέθοδο στο context του δικού του thread!"&lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Re: Ερώτηση</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/1753.aspx</link><pubDate>Thu, 28 Apr 2005 03:39:34 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:1753</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/1753.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=1753</wfw:commentRss><description>&lt;font face="Georgia" size="2"&gt;Πιθανώς&amp;nbsp;με το "κλειστά κόλπα" εννοεί ότι υπάρχει μόνο υποστήριξη για Microsoft SQL Server. Το SQLConnection είναι για τον Microsoft SQL Server. Δεν είπε εδώ κανένας μας ότι, υπάρχουν και άλλοι providers, ODBC, OLEDB, Oracle, mySQL με αντίστοιχα ονόματα OracleConnection, κοκ...&lt;br /&gt;&lt;br /&gt;Καλά πόσο, αφηρημένος είμαι... Έκανα copy &amp;amp; paste το κώδικα από WebForm. Ούτε που σκέφτηκα το WinForm.&lt;br /&gt;&lt;br /&gt;Μήπως στην συγκεκριμένη περίπτωση θα ήταν καλύτερα να δηλώσουμε ένα Delegate και να ξεκινήσουμε το Thread με BeginInvoke και να του περνάμε ένα dataset και να το παίρνουμε πίσω; Υπόθεση κάνουμε...&lt;br /&gt;&lt;br /&gt;Από την άλλη για άλλη μια φορά φαίνεται ότι όταν αρχίζουμε και μιλάμε για treading αρχίζουμε και νιώθουμε - κάνω quote&lt;/font&gt;&lt;br /&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;cap 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;br /&gt;Μου φαίνεται οτι άγγιξα το twilight zone... &lt;img src="/forums//emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;br /&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;&lt;font face="Georgia" size="2"&gt;Δεν είπαμε ότι να το παίξεις με free threading και πολλαπλά threads είναι και το πιο εύκολο πράγμα, αλλά σίγουρα γίνεται πολύ πιο εύκολα στη VB.NET.&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;font face="Georgia" size="2"&gt;George J.&lt;br /&gt;&lt;/font&gt;</description></item><item><title>Re: Ερώτηση</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/1745.aspx</link><pubDate>Wed, 27 Apr 2005 22:16:21 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:1745</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/1745.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=1745</wfw:commentRss><description>&lt;p&gt;Για το 2. ... τί εννοείς "κλειστά" κόλπα?&amp;nbsp; Η λογική του ADO.NET είναι ότι υπάρχουν κάποια στανταρ interfaces που υλοποιούνται από διαφορετικό provider για κάθε βάση. Αν βέβαια βιάζεσαι, ή δεν ενδιαφέρεσαι να τρέξεις την εφαρμογή σε διαφορετικές βάσεις μπορείς να παίξεις κατευθείαν με τους provider αντί για τα Interface. &lt;br /&gt;&lt;br /&gt;Όσο για το compile, ο compiler έχει δίκιο γιατί ο κώδικας που χρησιμοποιείς είναι για ASP.NET και όχι για Windows Forms. Το DataGrid των Windows.Forms δεν έχει μέθοδο DataBind, ούτε και την χρειάζεται. Η DataBind είναι μέθοδος του Web DataGrid και χρησιμοποιείται για να "διαβάσει" τα δεδομένα από το datasource του grid και μετά να δημιουργηθεί το HTML που θα σταλεί στον broswer. Εξάλλου,&amp;nbsp;οι DataReaders δεν περιέχουν δεδομένα και δεν μπορούν να χρησιμοποιηθούν σαν DataSources.&lt;br /&gt;&amp;nbsp; Ίσως να νομίζεις ότι χρησιμοποιώντας ένα datareader το grid θα φορτωθεί πιο γρήγορα. Για να εμφανιστεί όμως το grid πρέπει να έχει όλα τα δεδομένα του, οπότε ένα reader θα έπρεπε πάλι να φορτώσει όλα τα δεδομένα και μετά να τα περάσει στο grid.&lt;br /&gt;&lt;br /&gt;Η απλούστερη λύση είναι να βάλεις ένα connection, adapter και dataset στη φόρμα σου και να θέσεις σαν datasource του grid το dataset. Στο load χρησιμοποιείς μία απλή γραμμή:&lt;br /&gt;&amp;nbsp;&amp;nbsp; mySqlDataAdapter.Fill(myDataSet)&lt;br /&gt;και τελείωσες. Ούτε connection.Open, ούτε readers.&lt;br /&gt;&lt;br /&gt;Αν θες οπωσδήποτε να δημιουργήσεις το dataset με κώδικα θα πρέπει να γράψεις τα παρακάτω:&lt;br /&gt;&lt;table border="0" cellspacing="0" width="100%"&gt;&lt;tr&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td bgcolor="lightgrey" width="15"&gt;&lt;/td&gt;&lt;td bgcolor="lightgrey"&gt;&lt;br&gt;&lt;font face="Lucida Console, Courier" size="2"&gt;&lt;font size="3"&gt;&lt;/p&gt;&lt;pre class="source"&gt;&lt;p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;Dim&lt;/font&gt; connString &lt;font color="#0000ff"&gt;As&lt;/font&gt; &lt;font color="#0000ff"&gt;String&lt;/font&gt; = &lt;font color="#008000"&gt;"Server=localhost;Database=Northwind;Integrated Security=SSPI"&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;p&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;Dim&lt;/font&gt; sql &lt;font color="#0000ff"&gt;As&lt;/font&gt; &lt;font color="#0000ff"&gt;String&lt;/font&gt; = &lt;font color="#008000"&gt;"SELECT * FROM Products"&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;p&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;Dim&lt;/font&gt; conn &lt;font color="#0000ff"&gt;As&lt;/font&gt; SqlConnection = &lt;font color="#0000ff"&gt;New&lt;/font&gt; SqlConnection(connString)&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;Dim&lt;/font&gt; command &lt;font color="#0000ff"&gt;As&lt;/font&gt; SqlCommand = &lt;font color="#0000ff"&gt;New&lt;/font&gt; SqlCommand(sql, conn)&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font size="2"&gt;Try&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;p&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt; Dim&lt;/font&gt; mySet &lt;font color="#0000ff"&gt;As&lt;/font&gt; DataSet = &lt;font color="#0000ff"&gt;New&lt;/font&gt; DataSet&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt; Dim&lt;/font&gt; myAdapter &lt;font color="#0000ff"&gt;As&lt;/font&gt; SqlDataAdapter = &lt;font color="#0000ff"&gt;New&lt;/font&gt; SqlDataAdapter(command)&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2"&gt; myAdapter.Fill(mySet)&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2"&gt; DtgSearch.DataSource = mySet&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;Catch&lt;/font&gt; ex &lt;font color="#0000ff"&gt;As&lt;/font&gt; Exception&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color="#008000"&gt;&lt;font size="2"&gt;' Εδώ πάει ο κώδικας για τον χειρισμό των λαθών&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font size="2"&gt;Finally&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;p&gt;&lt;font color="#008000"&gt;&lt;font size="2"&gt;'Δεν χρειάζεται κλείσιμο&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;p&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;End&lt;/font&gt; &lt;font color="#0000ff"&gt;Try&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;br&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;</description></item><item><title>Re: Ερώτηση</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/1741.aspx</link><pubDate>Wed, 27 Apr 2005 21:06:49 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:1741</guid><dc:creator>gsint</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/1741.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=1741</wfw:commentRss><description>&lt;p&gt;Λυπάμε αλλά δεν παίζει τίποτα&lt;br /&gt;1. Η displayDataGrid2 δουλεύει από μόνη της, αρα;;; Με την "aDataGrid2.MdiParent = Me" μου σκάει run-time error πως σε ένα thread δεν μπορώ να έχω reference εκτός του thread. ok, αλλά και πάλι η φόρμα εμφανίζεται στην οθόνη και "χάνεται" από μόνη της... Τι μπορεί να συμβαίνει;;;&lt;br /&gt;&lt;font color="#0000ff" size="2"&gt;&lt;/p&gt; &lt;p&gt;Private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Sub&lt;/font&gt;&lt;font size="2"&gt; MenuItem7_Click(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; sender &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; System.Object, &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; e &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; System.EventArgs) &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Handles&lt;/font&gt;&lt;font size="2"&gt; MenuItem7.Click&lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt; &lt;p&gt;'displayDataGrid2()&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;Dim&lt;/font&gt;&lt;font size="2"&gt; objThread &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; Thread&lt;/p&gt; &lt;p&gt;objThread = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;New&lt;/font&gt;&lt;font size="2"&gt; Thread(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;AddressOf&lt;/font&gt;&lt;font size="2"&gt; displayDataGrid2)&lt;/p&gt; &lt;p&gt;objThread.Start()&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;End&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Sub&lt;/p&gt; &lt;p&gt;Private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Sub&lt;/font&gt;&lt;font size="2"&gt; displayDataGrid2()&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;Dim&lt;/font&gt;&lt;font size="2"&gt; aDataGrid2 &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt; DataGrid2 = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;New&lt;/font&gt;&lt;font size="2"&gt; DataGrid2&lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt; &lt;p&gt;'aDataGrid2.MdiParent = Me&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;aDataGrid2.Show()&lt;/p&gt; &lt;p&gt;aDataGrid2.Refresh()&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;End&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Sub&lt;br /&gt;&lt;br /&gt;2.&lt;br /&gt;&lt;font color="#0000ff" size="2"&gt;&lt;/p&gt; &lt;p&gt;Dim&lt;/font&gt;&lt;font color="#000000" size="2"&gt; connString &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;String&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt; = "Server=localhost;Database=Northwind;Integrated Security=SSPI"&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;Dim&lt;/font&gt;&lt;font color="#000000" size="2"&gt; sql &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;String&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt; = "SELECT * FROM Products"&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;Dim&lt;/font&gt;&lt;font color="#000000" size="2"&gt; conn &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font color="#000000" size="2"&gt; SqlConnection = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;New&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt; SqlConnection(connString)&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;Dim&lt;/font&gt;&lt;font color="#000000" size="2"&gt; command &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font color="#000000" size="2"&gt; SqlCommand = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;New&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt; SqlCommand(sql, conn)&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;Try&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;conn.Open()&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;Dim&lt;/font&gt;&lt;font color="#000000" size="2"&gt; reader &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt; SqlDataReader = command.ExecuteReader()&lt;/font&gt;&lt;/p&gt; &lt;p&gt;DtgSearch.DataSource = reader&lt;/p&gt; &lt;p&gt;DtgSearch.DataBind()&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;Catch&lt;/font&gt;&lt;font color="#000000" size="2"&gt; ex &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt; Exception&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt; &lt;p&gt;' Εδώ πάει ο κώδικας για τον χειρισμό των λαθών&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;Finally&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;conn.Close()&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;End&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Try&lt;br /&gt;&lt;br /&gt;&lt;font color="#000000"&gt;Δεν κάνει καν compile με μήνυμα&lt;br /&gt;&amp;nbsp;'DataBind' is not a member of 'System.Windows.Forms.DataGrid'.&lt;br /&gt;Αρα;;;&lt;br /&gt;&lt;br /&gt;Τέλος πάντων, διάβασα στο help πως αυτές οι κλάσεις SqlConnection κλπ είναι μόνο για SQL Server. Αν αυτό είναι αλήθεια τότε δεν έχει νόημα να μου απαντηθεί το 2 καν, δεν μου αρέσουν τα "κλειστά" κόλπα...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ευχαριστώ&lt;br /&gt;ΓΣ&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;</description></item><item><title>Re: Ερώτηση</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/1726.aspx</link><pubDate>Wed, 27 Apr 2005 06:46:12 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:1726</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/1726.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=1726</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Χεχε, αυτό ήταν δικό μου post &lt;img src="/forums/emoticons/emotion-1.gif" alt="Smile" /&gt; Φαντάσου δηλαδή σε τι κατάσταση βρίσκομαι που ούτε που θυμάμαι...&lt;img src="/forums/emoticons/emotion-1.gif" alt="Smile" /&gt; Οντως, ίσως μπορεί να βοηθήσει το Γιώργο αυτό το post υπό την έννοια οτι επιτρέπει σε μια φόρμα να ενημερώνεται από διαδικασίες που εκτελούνται σε κάποιο άλλο thread. Ετσι, μπορεί π.χ. η διαδικασία η οποία φορτώνει τα δεδομένα να εκτελείται σε ένα thread και μετά το πέρας της να ενημερώνεται το datagrid της φόρμας, όπως διευκρίνιζα σε προηγούμενο μήνυμα. (Αν αυτό είναι το ζητούμενο).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Re: Ερώτηση</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/1724.aspx</link><pubDate>Wed, 27 Apr 2005 06:05:30 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:1724</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/1724.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=1724</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Γειά σου Γιώργο, πιστεύω ότι σε αυτό το post (&lt;a target="_blank" title="/forums/ShowPost.aspx?PostID=1429" href="/forums/ShowPost.aspx?PostID=1429"&gt;http://www.dotnetzone.gr/forums/ShowPost.aspx?PostID=1429&lt;/a&gt;) θα βρεις ό,τι χρειάζεσαι για το πως μπορείς να κάνεις αυτό που λες... Χρειάζεται μόνο λίγη προσαρμογή στη δική σου περίπτωση αλλά κατά τ'άλλα το concept είναι ίδιο.&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Re: Ερώτηση</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/1721.aspx</link><pubDate>Wed, 27 Apr 2005 01:43:07 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:1721</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/1721.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=1721</wfw:commentRss><description>Γιώργο (gcapnias), μήπως ο Γιώργος (gsint)&amp;nbsp;( &lt;img src="/forums/emoticons/emotion-1.gif" alt="Smile" /&gt; ) μιλώντας για το thread εννοεί οτι το loading του datagrid και όχι όλη η φόρμα θα πρέπει να γινεται σε ξεχωριστό thread? Κατι τέτοιο κατάλαβα εγώ. Δηλ. η φόρμα να εμφανίζεται κανονικά, αλλά να υπάρχει ένα thread που να φέρνει τα data και όταν τελειώσει (προφανώς με κάποιο callback) να γίνεται bind με το datagrid της φόρμας που άνοιξε. &lt;br /&gt;&lt;br /&gt;Σιγουρα ο Γιώργος (gsint) θα μας λύσει την απορία, απλά επειδή έτσι το κατάλαβα εγώ είπα να το αναφέρω.&lt;br /&gt;</description></item><item><title>Re: Ερώτηση</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/1717.aspx</link><pubDate>Wed, 27 Apr 2005 00:00:44 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:1717</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/1717.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=1717</wfw:commentRss><description>&lt;font face="Georgia" size="2"&gt;Καλώς ήλθες στο forum &lt;img src="/forums//emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;br /&gt;&lt;br /&gt;1. Για να μπορέσεις να χρησιμοποιήσεις ένα καινούργιο thread.&lt;br /&gt;Κατ αρχήν πρέπει να προσθέσεις στην αρχή του κώδικα το &lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;Imports&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" size="2"&gt; System.Threading&lt;/font&gt;&lt;/p&gt;&lt;font face="Georgia" size="2"&gt;Στην συνέχεια θα πρέπει να φτιάξεις ένα subroutine που να περιέχει το κώδικα που δημιουργεί και τρέχει την φόρμα που θες. Έστω...&lt;/font&gt;&lt;br /&gt;&lt;br /&gt; &lt;p&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;Private&lt;/font&gt; &lt;font color="#0000ff"&gt;Sub&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" size="2"&gt; TheLongRunningTask()&lt;br /&gt;&lt;/font&gt;&lt;font face="Courier New" color="#008000" size="2"&gt;'Αυτή η subroutine κάνει προσομοίωση σε ένα task που θέλει πολύ ώρα να&lt;br /&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt;&lt;font color="#008000"&gt;'τρέξει. frmTaskProgress είναι η φόρμα που θέλουμε να τρέξουμε&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;Dim&lt;/font&gt; f &lt;font color="#0000ff"&gt;As&lt;/font&gt; &lt;font color="#0000ff"&gt;New&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" size="2"&gt; frmTaskProgress&lt;br /&gt;f.Show()&lt;br /&gt;f.Refresh() &lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt;&lt;font color="#008000"&gt;'Αναγκάζει την φόρμα να ζωγραφιστεί&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;Dim&lt;/font&gt; i &lt;font color="#0000ff"&gt;As&lt;/font&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;Integer&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;For&lt;/font&gt; i = 1 &lt;font color="#0000ff"&gt;To&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" size="2"&gt; 10&lt;br /&gt;Thread.CurrentThread.Sleep(500) &lt;/font&gt;&lt;font face="Courier New" color="#008000" size="2"&gt;'Καθυστέρηση 0,5 δευτ.&lt;br /&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Next&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;font face="Courier New" color="#008000" size="2"&gt;'Αφαίρεση της φόρμας από τη μνήμη&lt;br /&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt;f.Hide()&lt;br /&gt;f.Dispose()&lt;br /&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;End&lt;/font&gt; &lt;font color="#0000ff"&gt;Sub&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Georgia" size="2"&gt;Τέλος φτιάχνουμε τον κώδικα για το καινούργιο thread και το τρέχουμε...&lt;/font&gt;&lt;br /&gt;&lt;br /&gt; &lt;p&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;Dim&lt;/font&gt; t &lt;font color="#0000ff"&gt;As&lt;/font&gt; &lt;font color="#0000ff"&gt;New&lt;/font&gt; Thread(&lt;font color="#0000ff"&gt;AddressOf&lt;/font&gt; TheLongRunningTask) &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt;&lt;font color="#008000"&gt;'Δημιουργία νέου thread&lt;br /&gt;&lt;/font&gt;t.Start() &lt;/font&gt;&lt;/font&gt;&lt;font color="#008000"&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;'Έναρξη εκτέλεσης του thread&lt;/font&gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;font face="Georgia" size="2"&gt;Αυτός είναι ο τρόπος που φτιάχνεις το thread και το τρέχεις. Υπάρχουν πολλά μειονεκτήματα, όπως ότι το ξεκινάς και μετά πρέπει από μόνο του να καθαρίσει τα resources που χρησιμοποίησε, δεν επιστρέφει κάτι.&lt;br /&gt;&lt;br /&gt;2. Το DataReader μπορεί να εμφανιστεί όσο απλά αναφέρεις:&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;Dim&lt;/font&gt; connString &lt;font color="#0000ff"&gt;As&lt;/font&gt; &lt;font color="#0000ff"&gt;String&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt; = "Server=localhost;Database=Northwind;Integrated Security=SSPI"&lt;br /&gt;&lt;font color="#0000ff"&gt;Dim&lt;/font&gt; sql &lt;font color="#0000ff"&gt;As&lt;/font&gt; &lt;font color="#0000ff"&gt;String&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt; = "SELECT * FROM Products"&lt;br /&gt;&lt;font color="#0000ff"&gt;Dim&lt;/font&gt; conn &lt;font color="#0000ff"&gt;As&lt;/font&gt; SqlConnection = &lt;font color="#0000ff"&gt;New&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt; SqlConnection(connString)&lt;br /&gt;&lt;font color="#0000ff"&gt;Dim&lt;/font&gt; command &lt;font color="#0000ff"&gt;As&lt;/font&gt; SqlCommand = &lt;font color="#0000ff"&gt;New&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" size="2"&gt; SqlCommand(sql, conn)&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Try&lt;br /&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt;conn.Open()&lt;br /&gt;&lt;font color="#0000ff"&gt;Dim&lt;/font&gt; reader &lt;font color="#0000ff"&gt;As&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt; SqlDataReader = command.ExecuteReader()&lt;br /&gt;&lt;font color="#0000ff"&gt;Me&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt;.DataGrid1.DataSource = reader&lt;br /&gt;&lt;font color="#0000ff"&gt;Me&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt;.DataGrid1.DataBind()&lt;br /&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;Catch&lt;/font&gt; ex &lt;font color="#0000ff"&gt;As&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" size="2"&gt; Exception&lt;br /&gt;&lt;/font&gt;&lt;font face="Courier New" color="#008000" size="2"&gt;' Εδώ πάει ο κώδικας για τον χειρισμό των λαθών&lt;br /&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;Finally&lt;br /&gt;&lt;/font&gt;&lt;font face="Courier New" size="2"&gt;conn.Close()&lt;br /&gt;&lt;font color="#0000ff"&gt;End&lt;/font&gt; &lt;font color="#0000ff"&gt;Try&lt;/font&gt;&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;font face="Georgia" size="2"&gt;Δεν νομίζω ότι θα συναντήσεις πρόβλημα...&lt;br /&gt;&lt;br /&gt;Για ότι άλλο, εδώ είμαστε! &lt;img src="/forums//emoticons/emotion-5.gif" alt="Wink" /&gt;&lt;br /&gt;&lt;br /&gt;George J.&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Ερώτηση</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/1714.aspx</link><pubDate>Tue, 26 Apr 2005 20:58:21 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:1714</guid><dc:creator>gsint</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/1714.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=1714</wfw:commentRss><description>&lt;p&gt;Καινούργιος είμαι και εγώ και έχω 2 απλές (?) ερωτήσεις&lt;br /&gt;1. Εχω μια MDI φόρμα και σε ένα menu της κάνω&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff" size="2"&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;Di&lt;font size="1"&gt;m&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt; aDataGrid2 As DataGrid2 = New DataGrid2&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="1"&gt;&lt;font color="#0000ff"&gt;aDataGrid2.MdiParent = Me&lt;/font&gt;&lt;/p&gt;&lt;/font&gt; &lt;p&gt;&lt;font color="#0000ff" size="1"&gt;aDataGrid2.Show()&lt;/font&gt;&lt;font size="2"&gt;&lt;br /&gt;όπου DataGrid2 είναι μια απλή φόρμα με ένα datagrid πάνω το οποίο έχει ένα demanding query και καθυστερεί. Πως μπορώ να χρησιμοποιήσω thread εδώ;;;&lt;br /&gt;Μπορεί κάποιος να δώσει ένα απλό παράδειγμα κώδικα;;;&lt;br /&gt;&lt;br /&gt;2. πως ένα DataReader μπορεί να εμφανιστεί σε ένα DataGrid όπως το DataTable; (πολύ απλά dtGrid.DataSource = DtTable)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ευχαριστώ εκ των προτέρων&lt;br /&gt;Γιώργος Συντέτας&lt;/p&gt;&lt;/font&gt;</description></item></channel></rss>