<?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>Πρώτα Βήματα - Γλώσσες προγραμματισμού</title><link>https://www.dotnetzone.gr:443/cs/forums/74/ShowForum.aspx</link><description>Τα πρώτα βήματα στις γλώσσες VB6, VB.NET, και C#</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: VB.NET 2010 Ερώτηση για Async Await TaskEx.Run</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/68169.aspx</link><pubDate>Thu, 17 Nov 2011 06:54:17 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:68169</guid><dc:creator>AlKiS</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/68169.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=68169</wfw:commentRss><description>&lt;p&gt;Κατάλαβα τι εννοείς.&lt;/p&gt;&lt;p&gt;Lamda sub, ωραίο αυτό :)&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Πάντως όχι, δεν είναι αυτή η περίπτωσή μου.&lt;/p&gt;&lt;p&gt;Εγώ χρησιμοποιώ το await και έτσι πρώτα τελειώνει το sub και μετά συνεχίζει ο κώδικας.&lt;/p&gt;&lt;p&gt;"Έπαιξα" κιάλλο με τον κώδικα και είδα το εξής:&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Μπορώ να καλώ το sub και να γίνεται async, αλλά όχι μέσα απο module. θα πρέπει να είναι Μέσα στο Class που είναι το κουμπί που το καλεί.&lt;/p&gt;&lt;p&gt;Το ίδιο ακριβώς sub αν το κάνω copy/paste σε ένα module δεν δουλεύει.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Δεν με πειράζει τόσο, αφού κατάφερα να το βάλω σε εξωτερικό sub τώρα, καλά είμαι. Απλώς θέλω να καταλάβω τι παίζει.&lt;/p&gt;&lt;p&gt;Βάζω το θέμα ότι έχει λυθεί. Παρόλαυτα όμως, αν θες κοίτα τα προσωπικά σου μηνύματα μια.&lt;/p&gt;</description></item><item><title>Απ: VB.NET 2010 Ερώτηση για Async Await TaskEx.Run</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/68168.aspx</link><pubDate>Thu, 17 Nov 2011 06:19:33 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:68168</guid><dc:creator>Libra Storm</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/68168.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=68168</wfw:commentRss><description>&lt;p&gt;Από την στιγμή&amp;nbsp;που ασχολείσαι με Async θα πρέπει να αλλάξεις τον τρόπο με τον οποίο σχεδιάζεις και παίρνεις αποτελέσματα από τον κώδικά σου. Στην συγκεκριμένη περίπτωση αν υποθέσουμε ότι το Kinogames List είναι προσβάσιμο από όλα τα σημεία του κώδικα που το καλείς (πχ σε ένα module) και δεν το κάνεις instantiate μέσα από κάποιο άλλο class, ακόμα και τότε μπορεί πολύ εύκολα να πάρεις λάθος πληροφορίες. Εξέτασε τον παρακάτω κώδικα και σύγκρινε την δομή του με αυτόν που έχεις φτιάξει. Το παράδειγμα αυτό είναι λάθος και μπορείς έτσι πολύ εύκολα να νομίζεις ότι το List έχει πχ 0 items ενώ στην ουσία να έχει πολύ περισσότερα. Αν η δομή του κώδικά σου είναι σωστή τότε σίγουρα "γεμίζεις" διαφορετικά Lists.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="0" cellSpacing="0" cellPadding="0" width="100%"&gt;&lt;tr style="line-height:normal;vertical-align:top;"&gt;&lt;td style="width:40px;text-align:right;"&gt;&lt;pre style="margin:0px;padding:2px;color:gray;font-family:courier new;font-size:11px;border-right-width:1px;border-right-style:solid;"&gt;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 &lt;/pre&gt;&lt;/td&gt;&lt;td&gt;&lt;pre style="margin:0px;padding:2px 2px 2px 8px;"&gt;&lt;span style="color:black;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Imports&lt;/span&gt; System.Threading.Tasks

&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Public&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Class&lt;/span&gt; frmMain
    &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Private&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Sub&lt;/span&gt; Button1_Click(sender &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;As&lt;/span&gt; System.&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Object&lt;/span&gt;, e &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;As&lt;/span&gt; System.EventArgs) &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Handles&lt;/span&gt; Button1.Click
        AModule.KinoGames.&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Clear&lt;/span&gt;()
        &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Me&lt;/span&gt;.TestAsync()

        &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;' Γυρνώντας πίσω περίμενε λίγο&lt;/span&gt;
        Threading.Thread.Sleep(10) &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;' Αν κάνεις σχόλια την γραμμή αυτή μπορεί να σου δείξει ακόμα και 0 το KinoGames.Count.&lt;/span&gt;

        &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;' Δείξε με πόσα classes έχει ΗΔΗ γεμίσει το KinoGames List.&lt;/span&gt;
        &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;' Στο συγκεκριμένο παράδειγμα το messageBox δεν πρόκειται να δείξει το σωστό αποτέλεσμα (400000).&lt;/span&gt;
        MessageBox.Show(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Games count is: "&lt;/span&gt; &amp;amp; KinoGames.&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Count&lt;/span&gt;)
    &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;End&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Sub&lt;/span&gt;

    &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Private&lt;/span&gt; Async &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Sub&lt;/span&gt; TestAsync()
        &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;' Await δεν πάει να πει περίμενε αλλά: εφόσον ο κώδικας μέσα στο Lambda Sub δεν έχει τελειώσει,&lt;/span&gt;
        &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;' βάλε ένα "σημάδι" γιά να συνεχίσεις μετά και γύρνα πίσω, στο Sub από το οποίο με κάλεσες (στο Button1_Click δηλαδή).&lt;/span&gt;
        &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;' ΑΝ ο κώδικας τελείωσει γρήγορα ΔΕΝ θα γυρίσει πίσω (πχ βάλε 4 αντί γιά 400000). ( ε ρε θα κλάψουνε μανούλες :) ... ).&lt;/span&gt;
        Await TaskEx.Run(&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Sub&lt;/span&gt;()
                             &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;For&lt;/span&gt; i &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;As&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Integer&lt;/span&gt; &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; 1 &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;To&lt;/span&gt; 400000
                                 AModule.KinoGames.&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Add&lt;/span&gt;(&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;New&lt;/span&gt; KinoClass)
                             &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Next&lt;/span&gt;
                         &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;End&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Sub&lt;/span&gt;)

        &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;' Όταν τελειώσει το Task συνέχισε τον παρακάτω κώδικα.&lt;/span&gt;
        &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;' Αυτό είναι το σωστό σημείο να πάρεις τον σωστό αριθμό των KinoGames.&lt;/span&gt;
        MessageBox.Show(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Games count is: "&lt;/span&gt; &amp;amp; KinoGames.&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Count&lt;/span&gt;)
    &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;End&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Sub&lt;/span&gt;

&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;End&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Class&lt;/span&gt;

&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Public&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Class&lt;/span&gt; KinoClass
    &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;'&lt;/span&gt;
&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;End&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Class&lt;/span&gt;

&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Module&lt;/span&gt; AModule
    &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Public&lt;/span&gt; KinoGames &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;As&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;New&lt;/span&gt; List(Of KinoClass)
&lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;End&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Module&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Απ: VB.NET 2010 Ερώτηση για Async Await TaskEx.Run</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/68129.aspx</link><pubDate>Tue, 15 Nov 2011 05:08:20 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:68129</guid><dc:creator>AlKiS</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/68129.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=68129</wfw:commentRss><description>&lt;p&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;Παναγιώτης Καναβός:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Σε παρακαλώ, δώσε λίγη προσοχή κάθε φορά στο τί ρωτάς. Λες για 500 ώρες να διαβάζεις, τόσες όμως μου πήρε κι εμένα να διαβάσω τί έγραψες και να καταλάβω τί ζητούσες. Αν το κατάλαβα. Σεβάσου ότι κάποιοι "καίνε" χρόνο από τη δουλειά τους για να απαντήσουνε. Και μην περιμένεις να θυμόμαστε ποιός είναι ο καθένας και τί κάνει. Το forum έχει 6000 μέλη.&amp;nbsp;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Έχεις δίκιο. Δεν γίνεται να τους θυμάσαι όλους.&lt;/p&gt;&lt;p&gt;Άστο πάνω μου, κάθε φορά που θα δω ότι ξόδεψες χρόνο για να μου απαντήσεις, θα σε ενημερώνω για το ποιος είμαι και ότι δεν χρειάζεται να συνεχίσεις να με προσβάλεις/απαντάς. Μη φοβάσαι, εγώ δεν θα σε ξεχάσω ποτέ.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Πίσω στο topic τώρα. όλες τις νέες πληροφορίες τις έγραψα μετά απο edit στο προηγούμενο post μου. Οπότε όποιος έχει τη διάθεση και το χρόνο να βοηθήσει, παρακαλώ διαβάστε το τέλος του προηγούμενου πόστ μου.&lt;/p&gt;</description></item><item><title>Απ: VB.NET 2010 Ερώτηση για Async Await TaskEx.Run</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/68128.aspx</link><pubDate>Tue, 15 Nov 2011 04:35:47 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:68128</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/68128.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=68128</wfw:commentRss><description>Σε παρακαλώ, δώσε λίγη προσοχή κάθε φορά στο τί ρωτάς. Λες για 500 ώρες να διαβάζεις, τόσες όμως μου πήρε κι εμένα να διαβάσω τί έγραψες και να καταλάβω τί ζητούσες. Αν το κατάλαβα. Σεβάσου ότι κάποιοι "καίνε" χρόνο από τη δουλειά τους για να απαντήσουνε. Και μην περιμένεις να θυμόμαστε ποιός είναι ο καθένας και τί κάνει. Το forum έχει 6000 μέλη.&amp;nbsp;</description></item><item><title>Απ: VB.NET 2010 Ερώτηση για Async Await TaskEx.Run</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/68127.aspx</link><pubDate>Tue, 15 Nov 2011 04:22:29 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:68127</guid><dc:creator>AlKiS</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/68127.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=68127</wfw:commentRss><description>&lt;p&gt;Αν και η "απάντησή" σου είναι απλώς μια τεράστια προσβολή, διάβασα όλα όσα έγραψες.&lt;/p&gt;&lt;p&gt;Είμαι σίγουρος ότι έχουν γράψει άπειροι προγραμματιστές πολλά και πολύ καλύτερα προγράμματα απο το δικό μου. Ελπίζω να πρόσεξες τι είπα όμως.&lt;/p&gt;&lt;p&gt;Δεν χρησιμοποίησα την λέξη "Άλλοι" προγραμματιστές γιατι ΔΕΝ ΕΙΜΑΙ προγραμματιστής. Ηλεκτρολόγος σπουδάζω ο άνθρωπος και για 1000στη φορά θα πρέπει να αναφέρω σε εσένα (γιατί απο την απίστευτα κριτική σου συμπεριφορά και τις συνεχείς προσβολές σου θυμάμαι χαρακτηριστικά το όνομα σου και παρακαλάω από μέσα μου να μην ανοίξεις δικό μου topic) ότι προσπαθώ να προγραμματίσω γιατί μου αρέσει ο προγραμματισμός, και η μαθηματική λογική. ΔΕΝ είμαι προγραμματιστής και δεν ξέρω ούτε καν όλα τα βασικά.&lt;/p&gt;&lt;p&gt;Παρόλαυτα όμως, όλα όσα έμαθα σιγά σιγά, ρωτώντας εδώ και ιδικά από πράγματα που έγραψαν κάποιοι και καθόμουν με τις ώρες να τα μελετάω και να προσπαθώ να κάνω κάτι παρόμοιο, έμαθα κάποια πράγματα, πήρα 10/10 στον προγραμματισμό της σχολής μου (ηλεκτρολογία) και μπορώ να κάνω κάποια βασικά πράγματα και μόνος.&lt;/p&gt;&lt;p&gt;Τώρα, εσύ βλέπεις κάποιον που ξέρει μερικά πράγματα, αλλά έχει την όρεξη να μάθει και τον σαπίζεις στις προσβολές. Είναι κι αυτός ένας τρόπος, δεν αντιλέγω - αλλά σε παρακαλώ πολύ, μέσα απο την καρδιά μου φίλε Παναγιώτη, μην με ξανα "βοηθήσεις".&lt;/p&gt;&lt;p&gt;Προτιμώ να μην πάρω καμιά απάντηση παρά να χρειάζεται να απολογούμαι 500 ώρες και να διαβάζω πόστ σαν το δικό σου.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Υ.Γ.&lt;/p&gt;&lt;p&gt;Η κλάση και ο κώδικας που τη διέπει, που σχολίασες με αυτόν τον τρόπο, ουσιαστικά δημιουργήθηκε σε αυτό το φόρουμ, απο τον χρήση "Nassos.NET" σε αυτό το πόστ: http://www.dotnetzone.gr/cs/forums/thread/37586.aspx&lt;/p&gt;&lt;p&gt;Τότε δεν ήξερα καν τη είναι η κλάση, πόσο μάλλον να γράψω κάτι τέτοιο. Είχα κάνει ένα πρόγραμμα, και έλειπε μια τέτοια λειτουργία που μου την έγραψε ο φιλος Nassos.NET. Όπως είπα επανειλημμένα όμως, δεν το πήρα έτσι και να πω μετά "ωραία, μου το έγραψε αρα όλα εντάξη"..&amp;nbsp;&lt;/p&gt;&lt;p&gt;Κάθισα, το μελέτησα, έκανα παρόμοια μόνος μου, να καταλάβω πως δουλεύει, γιατί δουλεύει... και έτσι σιγά σιγά εμπλούτισα τις γνώσεις μου. έμαθα ένα ακόμα πράγμα. Στη συνέχεια είχα άλλη απορία, έκανα ερώτηση και κάποιος άλλος απάντησε (όχι με την λογική να γράψει κάτι που θα με μειώνει κλιμακωτά, αλλά απάντησε δίνοντας μου να καταλάβω τι και πως, και δίνοντας μου υλικό να διαβάσω να μάθω κιάλλα πράγματα).&lt;/p&gt;&lt;p&gt;Δεν ζήτησα ποτέ απο κανέναν έτοιμη τροφή. Να μάθω θέλω, έστω σιγά σιγά μιας που δεν θα γίνω προγραμματιστής. Και ευτυχώς για μένα υπήρξαν άτομα που όταν έβλεπαν ότι έχω όρεξη για μάθηση, μου απαντούσαν σωστά - παροτρύνοντας με να συνεχίσω και να γίνω καλύτερος, όχι κάνοντας με να αγανακτώ που προσπάθησα να μάθω και ασύγχρονο προγραμματισμό για πρώτη φορά στη ζωή μου.&lt;br&gt;&lt;/p&gt;&lt;p&gt;Ευχαριστώ για τον χρόνο σου,&lt;/p&gt;&lt;p&gt;Φιλικά, Γιάννης Μαμαλικίδης&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Τέλος με αυτό το θέμα. τώρα θέλω απλώς να τονίσω ότι το πρόβλημα μου δεν λύθηκε ακόμα, οπότε όποιος θέλει να με βοηθήσει, παρακαλώ ας το κάνει.&lt;/p&gt;&lt;p&gt;Να προσθέσω ότι τώρα πια δεν κολλάει καθόλου το πρόγραμμα, παρόλαυτα όμως, χρειάστηκε να σταματήσω να καλώ subs απο ένα Module που είχα, και να τα μεταφέρω όλα στο κύριο sub.&lt;/p&gt;&lt;p&gt;Για παράδειγμα έγραψα:&lt;/p&gt;&lt;p&gt;&lt;pre style="font-family:Consolas;font-size:13;color:black;background:white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Await&lt;/span&gt;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;TaskEx&lt;/span&gt;.Run(&lt;span style="color:blue;"&gt;Sub&lt;/span&gt;()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;If&lt;/span&gt;&amp;nbsp;TRIAL&amp;nbsp;=&amp;nbsp;&lt;span style="color:blue;"&gt;False&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Then&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;For&lt;/span&gt;&amp;nbsp;i&amp;nbsp;&lt;span style="color:blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Integer&lt;/span&gt;&amp;nbsp;=&amp;nbsp;txtDirectories.Lines.Length&amp;nbsp;-&amp;nbsp;1&amp;nbsp;&lt;span style="color:blue;"&gt;To&lt;/span&gt;&amp;nbsp;0&amp;nbsp;&lt;span style="color:blue;"&gt;Step&lt;/span&gt;&amp;nbsp;-1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;KinoClass&lt;/span&gt;.LoadNumbers(txtDirectories.Lines(i))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetProgressBarValue(((((((i&amp;nbsp;+&amp;nbsp;1)&amp;nbsp;-&amp;nbsp;txtDirectories.Lines.Length)&amp;nbsp;*&amp;nbsp;-1)&amp;nbsp;+&amp;nbsp;1)&amp;nbsp;/&amp;nbsp;txtDirectories.Lines.Length)&amp;nbsp;*&amp;nbsp;100)&amp;nbsp;/&amp;nbsp;4)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Next&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Else&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Dim&lt;/span&gt;&amp;nbsp;FileName&amp;nbsp;&lt;span style="color:blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;String&lt;/span&gt;&amp;nbsp;=&amp;nbsp;txtDirectories.Lines(0).Substring(&lt;span style="color:blue;"&gt;My&lt;/span&gt;.Application.Info.DirectoryPath.Length&amp;nbsp;&amp;amp;&amp;nbsp;&lt;span style="color:#a31515;"&gt;"\Data\"&lt;/span&gt;.Length)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;MessageBox&lt;/span&gt;.Show(txtLanguage.Lines(75)&amp;nbsp;&amp;amp;&amp;nbsp;vbCrLf&amp;nbsp;&amp;amp;&amp;nbsp;txtLanguage.Lines(76)&amp;nbsp;&amp;amp;&amp;nbsp;FileName,&amp;nbsp;txtLanguage.Lines(82),&amp;nbsp;&lt;span style="color:#2b91af;"&gt;MessageBoxButtons&lt;/span&gt;.OK,&amp;nbsp;&lt;span style="color:#2b91af;"&gt;MessageBoxIcon&lt;/span&gt;.Exclamation)&amp;nbsp;&lt;span style="color:green;"&gt;'Trial&amp;nbsp;mode&amp;nbsp;allowes&amp;nbsp;analysis&amp;nbsp;of&amp;nbsp;only&amp;nbsp;one&amp;nbsp;file.&amp;nbsp;Analysis&amp;nbsp;will&amp;nbsp;begin&amp;nbsp;now&amp;nbsp;on&amp;nbsp;this&amp;nbsp;file:&amp;nbsp;&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;KinoClass&lt;/span&gt;.LoadNumbers(txtDirectories.Lines(0))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetProgressBarValue(25)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;If&lt;/span&gt;
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;'SwarmCount&amp;nbsp;taken&amp;nbsp;from&amp;nbsp;module&amp;nbsp;so&amp;nbsp;as&amp;nbsp;to&amp;nbsp;work&amp;nbsp;with&amp;nbsp;async&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;For&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Me&lt;/span&gt;.intKinoGame&amp;nbsp;=&amp;nbsp;KinoGames.Count&amp;nbsp;-&amp;nbsp;1&amp;nbsp;&lt;span style="color:blue;"&gt;To&lt;/span&gt;&amp;nbsp;0&amp;nbsp;&lt;span style="color:blue;"&gt;Step&lt;/span&gt;&amp;nbsp;-1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(intKinoGame).N1))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(intKinoGame).N2))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(intKinoGame).N3))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(intKinoGame).N4))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(intKinoGame).N5))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(intKinoGame).N6))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(intKinoGame).N7))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(intKinoGame).N8))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(intKinoGame).N9))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(intKinoGame).N10))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(intKinoGame).N11))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(intKinoGame).N12))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(intKinoGame).N13))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(intKinoGame).N14))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(intKinoGame).N15))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(intKinoGame).N16))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(intKinoGame).N17))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(intKinoGame).N18))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(intKinoGame).N19))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(intKinoGame).N20))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;'SetProgressBarValue(25&amp;nbsp;+&amp;nbsp;(((((((j&amp;nbsp;+&amp;nbsp;1)&amp;nbsp;-&amp;nbsp;KinoGames.Count)&amp;nbsp;*&amp;nbsp;-1)&amp;nbsp;+&amp;nbsp;1)&amp;nbsp;/&amp;nbsp;KinoGames.Count)&amp;nbsp;*&amp;nbsp;100)&amp;nbsp;/&amp;nbsp;4))&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Next&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;'/end&amp;nbsp;of&amp;nbsp;SwarmCount&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Sub&lt;/span&gt;)&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;Ενώ αρχικά είχα&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;          &amp;nbsp;&lt;pre style="font-family:Consolas;font-size:13;color:black;background:white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Await&lt;/span&gt;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;TaskEx&lt;/span&gt;.Run(&lt;span style="color:blue;"&gt;Sub&lt;/span&gt;()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;For&lt;/span&gt;&amp;nbsp;i&amp;nbsp;=&amp;nbsp;txtDirectories.Lines.Length&amp;nbsp;-&amp;nbsp;1&amp;nbsp;&lt;span style="color:blue;"&gt;To&lt;/span&gt;&amp;nbsp;0&amp;nbsp;&lt;span style="color:blue;"&gt;Step&lt;/span&gt;&amp;nbsp;-1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;KinoClass&lt;/span&gt;.LoadNumbers(txtDirectories.Lines(i))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Next&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MsgBox(KinoGames.Count)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Call&lt;/span&gt;&amp;nbsp;SwarmsCount()&amp;nbsp;&lt;span style="color:green;"&gt;'Filling&amp;nbsp;NSwarm(Array)&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Sub&lt;/span&gt;)&lt;br&gt;&lt;br&gt;και μέσα στο &lt;span style="color:blue;"&gt;Call&lt;/span&gt; SwarmsCount() είχα &amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;For&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Me&lt;/span&gt;.intKinoGame&amp;nbsp;=&amp;nbsp;KinoGames.Count&amp;nbsp;-&amp;nbsp;1&amp;nbsp;&lt;span style="color:blue;"&gt;To&lt;/span&gt;&amp;nbsp;0&amp;nbsp;&lt;span style="color:blue;"&gt;Step&lt;/span&gt;&amp;nbsp;-1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(intKinoGame).N1))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(intKinoGame).N2)) += 1 κτλ κτλ κτλ κτλ...&lt;br&gt;

Δηλαδή το μόνο που έκανα ήταν να μεταφέρω τον κώδικα!! &lt;br&gt;όταν όλα είναι στο κυρίως sub, δουλεύουν. Αν το καλώ απο ένα άλλο sub τότε δεν δουλεύει..&lt;br&gt;&lt;br&gt;Μπορώ να το κάνω κάπως έτσι ώστε να μεταφέρω κώδικα σε ένα module και να συνεχίσει να δουλεύει? (Το θέλω αυτό γιατί το κυρίως sub έχει γεμίσει άπειρες σειρές κώδικα το καημένο.. να μεταφερθούν μερικές αλλού)&lt;br&gt;&lt;br&gt;Και ένα δεύτερο, να καταλάβω γιατί δουλεύει έτσι και όχι αλλίως. Με ενδιαφέρει να μάθω, να αντιληφθώ.&lt;br&gt;Ευχαριστώ εκ των προτέρων όποιον ή όποιος βοηθήσουν :)&lt;br&gt;&lt;/pre&gt;&lt;/p&gt;</description></item><item><title>Απ: VB.NET 2010 Ερώτηση για Async Await TaskEx.Run</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/68121.aspx</link><pubDate>Mon, 14 Nov 2011 22:16:22 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:68121</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/68121.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=68121</wfw:commentRss><description>&lt;div&gt;&lt;b&gt;Σημείωση: &lt;/b&gt;Το μεγαλύτερο μέρος του post μοιάζει με rant αλλά όσο έβρισκα τί πάει στραβά με τον κώδικα, τόσο καταλάβαινα τί προσπαθεί να κάνει. Από την άλλη, ο παράλληλος προγραμματισμός δεν έχει silver bullets και αποκλείεται να βγει κάποιο ανεκτό αποτέλεσμα αν ρίξεις και ένα async πάνω από ήδη προβληματικό κώδικα.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;To Async CTP δεν πρόκειται να σε βοηθήσει σε τίποτε αν δεν ξέρεις πως δουλεύει το threading, τί (ή ποιός) είναι ο αλγόριθμος σου, αν οι κλάσεις είναι μπλεγμένες μεταξύ τους, ή αν έχεις μπλέξει τον κώδικα που κάνει τον υπολογισμό με τον κώδικα της φόρμας - να μην πω για τη φρίκη να διαβάζεις τα δεδομένα του αλγόριθμου από controls, ή αντί για πίνακα να έχεις μεταβλητές N1 - N20. Την χρήση του On Error Goto ..... 10 χρόνια τώρα έχουμε exceptions, τί το θέλεις το On Error? Μήπως νομίζεις ότι είναι "πιο γρήγορο"? Ο ίδιος μηχανισμός είναι από κάτω, την ίδια καθυστέρηση θα έχεις ΟΤΑΝ ΠΕΣΕΙ ΤΟ ERROR. Η καθυστέρηση οφείλεται στην εμφάνιση του error όχι στον τρόπο που το πιάνεις.&amp;nbsp;&lt;div&gt;Επίσης δεν σημαίνει ότι είναι καν η κατάλληλη λύση - γιατί νομίζεις ότι χρειάζεσαι ασύγχρονο αντί για παράλληλο προγραμματισμό? Ασύγχρονος προγραμματισμός χρειάζεται όταν έχεις διαδικασίες που μπλοκάρουν, όχι όταν έχεις διαδικασίες που απαιτούν μεγάλη υπολογιστική ισχύ.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Άλλο πράγμα το task parallelism (εκτελώ ένα ή περισσότερα tasks ασύγχρονα) και άλλο το data parallelism (εκτελώ κώδικα πάνω σε μεγάλο αριθμό δεδομένων). Η περίπτωση σου είναι μάλλον data parallelism οπότε θα έπρεπε να κοιτάς τα Parallel.For, PLINQ και τεχνικές Map/Reduce. Για το task parallelism υπάρχει το Task Parallel Library ήδη (δεν χρειάζεσαι καθόλου το Async CTP) με την TaskFactory.StartNew, την Task.ContinueWith και άπειρες άλλες μεθόδους. Μάλιστα η TaskEx.Run που χρησιμοποιείς είναι αντίστοιχη της σημερινής TaskFactory.StartNew, οπότε τσάμπα έβαλες το Async.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Όσο για το πρόγραμμα,&lt;b&gt; να είσαι απολύτως βέβαιος ότι το έχουν κάνει άπειροι άλλοι προγραμματιστές στο παρελθόν&lt;/b&gt;, σε όλες τις δυνατές γλώσσες και προφανώς το έκαναν να εκτελείται παράλληλα και πολύ πιο γρήγορα απ' ότι θα καταφέρεις με μία υλοποίηση που απλά χρησιμοποιεί το async. Είμαι σίγουρος ότι αν κάνεις μία αναζήτηση σε δημοσιεύσεις του IEEE ή του ACM θα βρεις υλοποιήσεις ηλικίας ίσως και 30 ετών - ίσως και παραπάνω. Μάλιστα είμαι σίγουρος ότι ακόμα και οι πιο παλιές υλοποιήσεις θα είναι ταχύτερες από αυτή που θα κάνεις γιατί θα χρησιμοποιούν διάφορες τεχνικές βελτιστοποίησης για να αποφύγουν περιττούς υπολογισμούς, θα εκμεταλλεύονται τις στατιστικές ιδιότητες του προβλήματος για να κάνουν μόνο τους υπολογισμούς που έχουν μεγαλύτερη πιθανότητα επιτυχίας, ή θα διασπάνε το πρόβλημα σε τμήματα για να πετύχουν ταχύτερη επεξεργασία.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Μάλιστα θα σου πρότεινα να δεις πρώτα τί τεχνικές έχουν δημοσιευτεί - απλά κοίτα &lt;a href="http://en.wikipedia.org/wiki/Keno"&gt;το άρθρο του Wikipedia&lt;/a&gt; αν θες, για να πάρεις μία πρώτη γεύση. Δεν έχει κανένα νόημα να επιταχύνεις ένα αργό αλγόριθμο, πάλι αργός θα είναι.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Α, και τελικά ΔΕΝ είπες τί θέλεις να κάνεις. Κάτι στο στυλ: "Θέλω να διαβάσω τους αριθμούς που έχουν βγει σε παιχνίδια KENO από το 2003, τα οποία βρίσκονται σε διάφορα αρχεία και να υπολογίσω τη συχνότητα εμφάνισης κάθε αριθμού" ή κάτι τέτοιο. Κάθε ερώτηση έχει διαφορετική απάντηση και "μασώντας" την ερώτηση, απλά δεν θα πάρεις ποτέ σωστή απάντηση.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Πάντως, αν περιμένεις να βγάλεις συμπεράσματα από τη συχνότητα και μόνο χωρίς να λαμβάνεις υπόψη και τους συνδυασμούς, δεν θα κάνεις και τίποτα.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Αν όντως προσπαθείς απλά να μετρήσεις πόσες φορές εμφανίστηκε κάποιος αριθμός, το καλύτερο που έχεις να κάνεις είναι κάθε φορά που διαβάζεις μία γραμμή να κάνεις split για να πάρεις τα νούμερα και να ανανεώνεις την αντίστοιχη θέση του πίνακα. Πίνακα, όχι N1-20. Αν πάλι θέλεις να γίνει πιο γρήγορη η διαδικασία, μπορείς να διαβάζεις κάθε γραμμή ασύγχρονα, με την ReadLineAsync αντί για την ReadLine. Εδώ έχει νόημα να χρησιμοποιήσεις async καθώς κάθε read μπορεί να μπλοκάρει.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Όσον αφορά τον κώδικα σου και το "πρόβλημα", είσαι τυχερός που βγαίνει έστω και ένα νούμερο σωστό. Ή μάλλον, όλος σου ο κώδικας εξακολουθεί να εκτελείται σε ένα και μοναδικό thread (οπότε και δεν πέτυχες καμμία επιτάχυνση). Κατά τα άλλα, πειράζεις στο task thread μία λίστα που έχει δημιουργηθεί σε ένα thread, χωρίς κανένα κλείδωμα, οπότε μπορεί κάποιο άλλο κομμάτι του κώδικα σου να την πειράζει. Αλήθεια, που ορίζεται η KinoGames? Δεν μπορεί να έχει οριστεί στην φόρμα ή στην KinoClass γιατί και στις δύο περιπτώσεις αναφέρεσαι σε αυτήν χωρίς κάποιο πρόθεμα. Μήπως την έχεις βάλει μέσα σε κάποιο module?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Όπως και να έχει, ο κώδικας θέλει δραστικό ξεκαθάρισμα. Δεν πρέπει σε καμμία περίπτωση να πειράζεις μέσα σε ένα task μεταβλητές ή members που έχουν οριστεί έξω από το task. Αντί να δημιουργείς "απ'έξω" την λίστα με τα παιχνίδια, δημιούργησε την μέσα στο task και γύρνα την πίσω ως αποτέλεσμα στο τέλος.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Αν κατάλαβα τί &amp;nbsp;θέλεις να κάνεις, αυτό που χρειάζεται είναι να διαβάσεις κάθε γραμμή και για κάθε νούμερο να αυξήσεις κατά ένα τον κατάλληλο "κουβά":&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;int&lt;/span&gt;[] CalculateFequencies(&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;string&lt;/span&gt; path)
        {
            var frequencies=&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;int&lt;/span&gt;[80];
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;foreach&lt;/span&gt; (var file &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;in&lt;/span&gt; Directory.EnumerateFiles(path,&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"*.txt"&lt;/span&gt;))
            {
                &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; (var reader &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; StreamReader(file))
                {
                    &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;while&lt;/span&gt; (!reader.EndOfStream)
                    {
                        var line &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; reader.ReadLine();
                        var values &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; from value &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;in&lt;/span&gt; line.Split('&lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;|&lt;/span&gt;')
                                     select &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;int&lt;/span&gt;.Parse(value);
                        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;foreach&lt;/span&gt; (var value &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;in&lt;/span&gt; values)
                        {
                            frequencies[value]++;
                        }
                    }
                }
            }
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;return&lt;/span&gt; frequencies;
        }&lt;/span&gt;&lt;/pre&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Αυτό που δοκίμασες να κάνεις με το async ουσιαστικά είναι να τρέξεις όλη αυτή τη συνάρτηση μέσα σε ένα task όπως παρακάτω. Η κλήση αυτή είναι λίγο πιο αργή από την αρχική, αλλά αν τα αρχεία είναι μεγάλα δεν έχει "φοβερή" διαφορά:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;static&lt;/span&gt; Task&amp;lt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;int&lt;/span&gt;[]&amp;gt; CalculateFequenciesTask(&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;string&lt;/span&gt; path)
        {
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;return&lt;/span&gt; Task.Factory.StartNew(() =&amp;gt;
            {
                &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;return&lt;/span&gt; CalculateFequencies(path);
            });
        }&lt;/span&gt;&lt;/pre&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Αν δοκιμάσεις την ReadLineAsync θα δεις ότι η ταχύτητα .... πέφτει δραματικά (στο 1/3). Ο λόγος είναι ότι τα αρχεία είναι πάντα buffered και έτσι η ασύγχρονη ανάγνωση σε επίπεδο γραμμής απλά καθυστερεί τα πράγματα αντί να τα επιταχύνει:&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;static&lt;/span&gt; async Task&amp;lt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;int&lt;/span&gt;[]&amp;gt; CalculateFequenciesAsync(&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;string&lt;/span&gt; path)
        {
            var frequencies=&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;int&lt;/span&gt;[80];
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;foreach&lt;/span&gt; (var file &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;in&lt;/span&gt; Directory.EnumerateFiles(path,&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"*.txt"&lt;/span&gt;))
            {
                &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; (var reader &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; StreamReader(file))
                {
                    &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;while&lt;/span&gt; (!reader.EndOfStream)
                    {
                        var line &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; await reader.ReadLineAsync();
                        var values &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; from value &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;in&lt;/span&gt; line.Split('&lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;|&lt;/span&gt;')
                                     select &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;int&lt;/span&gt;.Parse(value);
                        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;foreach&lt;/span&gt; (var value &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;in&lt;/span&gt; values)
                        {
                            frequencies[value]++;
                        }
                    }
                }
            }
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;return&lt;/span&gt; frequencies;
        }&lt;/span&gt;&lt;/pre&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Μία καλύτερη λύση είναι να διαβάσεις κάθε αρχείο παράλληλα με τα υπόλοιπα και στο τέλος να συνδυάσεις τα αποτελέσματα. Η ταχύτητα εδώ είναι 3πλάσια της αρχικής, σύγχρονης έκδοσης. Στον παρακάτω κώδικα κάθε αρχείο διαβάζεται παράλληλα με τα άλλα, και στο τέλος αθροίζονται οι συχνότητες του κάθε αρχείου. Το ενδιαφέρον είναι ότι η επιτάχυνση επιτυγχάνεται ΜΟΝΟ αν σπάσει η επεξεργασία σε αυτά τα δύο βήματα. Διαφορετικά το τελικό άθροισμα μπλοκάρεται από τις αναγνώσεις και η απόδοση του κώδικα θα είναι ίδια με όλες τις προηγούμενες φορές:&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;static&lt;/span&gt; Task&amp;lt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;int&lt;/span&gt;[]&amp;gt; CalculateFequenciesTask2(&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;string&lt;/span&gt; path)
        {           
                var fileFrequencies=(from file &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;in&lt;/span&gt; Directory.EnumerateFiles(path, &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"*.txt"&lt;/span&gt;)
                                     &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;//Start asynchronous processing of each file&lt;/span&gt;
                                    select Task.Factory.StartNew(()=&amp;gt;
                                    {
                                        var frequencies &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;int&lt;/span&gt;[80];
                                        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; (var reader &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; StreamReader(file))
                                        {

                                            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;while&lt;/span&gt; (!reader.EndOfStream)
                                            {
                                                var line &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; reader.ReadLine();
                                                var values &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; from value &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;in&lt;/span&gt; line.Split('&lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;|&lt;/span&gt;')
                                                             select &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;int&lt;/span&gt;.Parse(value);
                                                &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;foreach&lt;/span&gt; (var value &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;in&lt;/span&gt; values)
                                                {
                                                    frequencies[value]++;
                                                }
                                            }
                                        }
                                        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;return&lt;/span&gt; frequencies;
                                    })).ToArray();

                &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;return&lt;/span&gt; Task.Factory.ContinueWhenAll(fileFrequencies, 
                    freqs=&amp;gt;SumPartialFrequencies(freqs));
        }
        
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;int&lt;/span&gt;[] SumPartialFrequencies(Task&amp;lt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;int&lt;/span&gt;[]&amp;gt;[] partialFrequencies)
        {
            var finalFrequencies &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; partialFrequencies.Aggregate(&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;int&lt;/span&gt;[80], (sum, freq) =&amp;gt;
            {
                &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;int&lt;/span&gt; i &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; 0; i &amp;lt; sum.Length; i++)
                    sum[ i] += freq.Result[1];
                &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;return&lt;/span&gt; sum;
            });
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;return&lt;/span&gt; finalFrequencies;
        }
       &lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;Προφανώς υπάρχουν και άλλες τεχνικές, οι οποίες θα είναι ακόμα πιο γρήγορες και θα μπορούν να χειριστούν ταυτόχρονα ακόμα περισσότερα αρχεία. Το σίγουρο είναι ότι δεν μπορείς να κοτσάρεις ένα async σε μία μέθοδο και να περιμένεις να δουλέψει σωστά ή να πάει πιο γρήγορα - η κατανόηση του παράλληλου προγραμματισμού είναι απαραίτητη καθώς και η δοκιμή αρκετών μεθόδων μέχρι να βρεις αυτή που δουλεύει στην περίπτωση σου.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>Απ: VB.NET 2010 Ερώτηση για Async Await TaskEx.Run</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/68115.aspx</link><pubDate>Mon, 14 Nov 2011 07:19:38 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:68115</guid><dc:creator>AlKiS</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/68115.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=68115</wfw:commentRss><description>&lt;p&gt;Το πρόγραμμα αυτό διαβάζει απο αρχεία όλα τα παιχνίδια που έχουν παιχτεί απο το 2003 (αρχή του ΚΙΝΟ) μέχρι και σήμερα&lt;/p&gt;&lt;p&gt;στη συνέχεια βλέπει το πλήθος που έχει πέσει το κάθε νούμερο (πχ το νούμερο 1 έχει πέσει 30567 φορές, ενώ το 2 έχει πέσει 29998 φορές)&lt;/p&gt;&lt;p&gt;Μετά κάνει bubble sort, και σύμφωνα με τον Νόμο τον μεγάλως αριθμών, το 2 έχει περισσότερες πιθανότητες να πέσει στα επόμενα παιχνίδια.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Έχω κάνει κάποιες αλλαγες καιτο πρόγραμμα είναι πια async. δλδ καθόλη τη διάρκεια το UI δεν κολλάει. όμως και πάλι δεν είμαι ευχαριστημένος για ένα συγκεκριμένο λόγο.&lt;/p&gt;&lt;p&gt;Γίνεται να γράψω τον κώδικα έτσι όπως τον έκανα τώρα να το δεις, αλλά μετά να τον σβήσεις απο το πόστ μου σε παρακαλώ? (Το συγκεκριμένο πρόγραμμα δεν θέλω να μαθευτεί)&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;</description></item><item><title>Απ: VB.NET 2010 Ερώτηση για Async Await TaskEx.Run</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/68114.aspx</link><pubDate>Mon, 14 Nov 2011 07:10:28 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:68114</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/68114.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=68114</wfw:commentRss><description>&lt;p&gt;Θα βοηθούσε να περιγράψεις τον λογική που προσπαθείς να εφαρμόσεις - τι προσπαθείς να κάνεις με αυτό τον κώδικα;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;George J.&lt;br&gt;&lt;/p&gt;</description></item><item><title>Απ: VB.NET 2010 Ερώτηση για Async Await TaskEx.Run</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/68110.aspx</link><pubDate>Sun, 13 Nov 2011 06:00:09 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:68110</guid><dc:creator>AlKiS</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/68110.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=68110</wfw:commentRss><description>&lt;p&gt;Αν και δεν έχω αρκετές γνώσεις για να καταλάβω τι λες ακριβώς (για να σου δώσω να καταλάβεις την συγκεκριμένη κλάση κάποιος άλλος μου την έγραψε - προσοπικά δεν ξέρω πως να χρησιμοποιώ κλάσεις, μόνο να κάνω subs και functions μέσα στην ήδη υπάρχουσα κλάση ξέρω)&lt;/p&gt;&lt;p&gt;Πάντως αυτό που είπες βγάζει νόημα.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Το θέμα είναι, πως μπορώ να αλλάξω τον κώδικα έτσι ώστε να μένουν τα αποτελέσματα? Θα μπορούσες σε παρακαλώ να με βοηθήσεις?&lt;/p&gt;</description></item><item><title>Απ: VB.NET 2010 Ερώτηση για Async Await TaskEx.Run</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/68109.aspx</link><pubDate>Sun, 13 Nov 2011 05:40:45 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:68109</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/68109.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=68109</wfw:commentRss><description>&lt;p&gt;Μια παρατήρηση στο πως έχει γράψεις την κλάση σου:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Κάνεις αναφορά στην στο αντικείμενο της φόρμας με το όνομα της κλάσης - καταλαβαίνεις ότι με αυτό τον τρόπο, είναι δυνατόν να μην έχεις το ίδιο instance του αντικειμένου της κλάσης, μέσα στο object που την καλείς με αυτό που βλέπεις.&lt;/li&gt;&lt;li&gt;Γενικά, οι κλάσεις έχουν το χαρακτηριστικό ότι είναι επαναχρησιμοποιούμενος κώδικας, ανεξαρτήτως εφαρμογής - η δική σου κλάση δεν τηρεί αυτόν τον κανόντα. Μπορεί σε γενικές γραμμές να μην επιρεάζει τα προγράμματα που γράφεις, αλλά όταν αρχίζεις να κάνεις πιο advanced πράγματα, πχ async που παίζει με πολλά threads, και θα πρέπει πάντα να έχεις στο μυαλό σου, ότι το thread του UI δεν θα είναι το thread που θα τρέξει η async λειτουργία, και έτσι όπως το βλέπω εδώ, μάλλον αυτόματα η κλάση σου, φτιάχνει ένα δεύτερο instance του form, και τρέχει τον υπολογισμό και όταν βγαίνει από τον υπολογισμό χάνονται όλα...&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;George J.&lt;br&gt;&lt;/p&gt;</description></item><item><title>VB.NET 2010 Ερώτηση για Async Await TaskEx.Run</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/68108.aspx</link><pubDate>Sun, 13 Nov 2011 02:25:17 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:68108</guid><dc:creator>AlKiS</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/68108.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=68108</wfw:commentRss><description>&lt;p&gt;Καλησπέρα σε όλους,&lt;/p&gt;&lt;p&gt;Επειδή ένα πρόγραμμά μου χρειάζεται να κάνει χιλιάδες πράξεις, το UI κολλάει για ώρα. Αυτό το θεωρώ απαράδεκτο, οπότε η μόνη λύση είναι να μάθω Async programming.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Κατέβασα το Async CTP της Microsoft για την Visual Basic .NET 2010 και άρχισα να βλεπω βιντεάκια για το πως δουλεύει. Προτού όμως πω ακριβώς το πρόβλημα ας δώσω μερικές πληροφορίες.&lt;/p&gt;&lt;p&gt;Έχω την εξής κλάση:&lt;/p&gt;&lt;pre style="font-family:Consolas;font-size:13;color:black;background:white;"&gt;&lt;span style="color:blue;"&gt;Public&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Class&lt;/span&gt;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;KinoClass&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Public&lt;/span&gt;&amp;nbsp;N1,&amp;nbsp;N2,&amp;nbsp;N3,&amp;nbsp;N4,&amp;nbsp;N5,&amp;nbsp;N6,&amp;nbsp;N7,&amp;nbsp;N8,&amp;nbsp;N9,&amp;nbsp;N10,&amp;nbsp;N11,&amp;nbsp;N12,&amp;nbsp;N13,&amp;nbsp;N14,&amp;nbsp;N15,&amp;nbsp;N16,&amp;nbsp;N17,&amp;nbsp;N18,&amp;nbsp;N19,&amp;nbsp;N20&amp;nbsp;&lt;span style="color:blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;String&lt;/span&gt;
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Public&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Sub&lt;/span&gt;&amp;nbsp;ReadNumber(&lt;span style="color:blue;"&gt;ByVal&lt;/span&gt;&amp;nbsp;LineData&amp;nbsp;&lt;span style="color:blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;String&lt;/span&gt;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;On&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Error&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;GoTo&lt;/span&gt;&amp;nbsp;ErrorHandle
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Dim&lt;/span&gt;&amp;nbsp;breakLine&amp;nbsp;&lt;span style="color:blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;String&lt;/span&gt;()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;breakLine&amp;nbsp;=&amp;nbsp;LineData.Split(&lt;span style="color:#a31515;"&gt;"|"&lt;/span&gt;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Me&lt;/span&gt;.N1&amp;nbsp;=&amp;nbsp;breakLine(0)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Me&lt;/span&gt;.N2&amp;nbsp;=&amp;nbsp;breakLine(1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Me&lt;/span&gt;.N3&amp;nbsp;=&amp;nbsp;breakLine(2)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Me&lt;/span&gt;.N4&amp;nbsp;=&amp;nbsp;breakLine(3)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Me&lt;/span&gt;.N5&amp;nbsp;=&amp;nbsp;breakLine(4)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Me&lt;/span&gt;.N6&amp;nbsp;=&amp;nbsp;breakLine(5)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Me&lt;/span&gt;.N7&amp;nbsp;=&amp;nbsp;breakLine(6)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Me&lt;/span&gt;.N8&amp;nbsp;=&amp;nbsp;breakLine(7)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Me&lt;/span&gt;.N9&amp;nbsp;=&amp;nbsp;breakLine(8)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Me&lt;/span&gt;.N10&amp;nbsp;=&amp;nbsp;breakLine(9)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Me&lt;/span&gt;.N11&amp;nbsp;=&amp;nbsp;breakLine(10)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Me&lt;/span&gt;.N12&amp;nbsp;=&amp;nbsp;breakLine(11)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Me&lt;/span&gt;.N13&amp;nbsp;=&amp;nbsp;breakLine(12)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Me&lt;/span&gt;.N14&amp;nbsp;=&amp;nbsp;breakLine(13)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Me&lt;/span&gt;.N15&amp;nbsp;=&amp;nbsp;breakLine(14)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Me&lt;/span&gt;.N16&amp;nbsp;=&amp;nbsp;breakLine(15)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Me&lt;/span&gt;.N17&amp;nbsp;=&amp;nbsp;breakLine(16)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Me&lt;/span&gt;.N18&amp;nbsp;=&amp;nbsp;breakLine(17)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Me&lt;/span&gt;.N19&amp;nbsp;=&amp;nbsp;breakLine(18)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Me&lt;/span&gt;.N20&amp;nbsp;=&amp;nbsp;breakLine(19)
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Exit&amp;nbsp;Sub&lt;/span&gt;
ErrorHandle:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MsgBox(frmMain.txtLanguage.Lines(39),&amp;nbsp;&lt;span style="color:#2b91af;"&gt;MsgBoxStyle&lt;/span&gt;.Critical)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Sub&lt;/span&gt;
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Public&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Shared&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Sub&lt;/span&gt;&amp;nbsp;LoadNumbers(&lt;span style="color:blue;"&gt;ByVal&lt;/span&gt;&amp;nbsp;filename&amp;nbsp;&lt;span style="color:blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;String&lt;/span&gt;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Dim&lt;/span&gt;&amp;nbsp;fileStream&amp;nbsp;&lt;span style="color:blue;"&gt;As&lt;/span&gt;&amp;nbsp;System.IO.&lt;span style="color:#2b91af;"&gt;FileStream&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fileStream&amp;nbsp;=&amp;nbsp;System.IO.&lt;span style="color:#2b91af;"&gt;File&lt;/span&gt;.OpenRead(filename)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Dim&lt;/span&gt;&amp;nbsp;sReader&amp;nbsp;&lt;span style="color:blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;New&lt;/span&gt;&amp;nbsp;System.IO.&lt;span style="color:#2b91af;"&gt;StreamReader&lt;/span&gt;(fileStream)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;While&lt;/span&gt;&amp;nbsp;(sReader.EndOfStream&amp;nbsp;=&amp;nbsp;&lt;span style="color:blue;"&gt;False&lt;/span&gt;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Dim&lt;/span&gt;&amp;nbsp;line&amp;nbsp;&lt;span style="color:blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;String&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;line&amp;nbsp;=&amp;nbsp;sReader.ReadLine()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Dim&lt;/span&gt;&amp;nbsp;NumbersLine&amp;nbsp;&lt;span style="color:blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;New&lt;/span&gt;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;KinoClass&lt;/span&gt;()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NumbersLine.ReadNumber(line)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;KinoGames.Add(NumbersLine)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;While&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Sub&lt;/span&gt;
&lt;span style="color:blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Class&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;Και μεταβλητές:&lt;br&gt;&lt;pre style="font-family:Consolas;font-size:13;color:black;background:white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Public&lt;/span&gt;&amp;nbsp;KinoGames&amp;nbsp;&lt;span style="color:blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;New&lt;/span&gt;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;(&lt;span style="color:blue;"&gt;Of&lt;/span&gt;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;KinoClass&lt;/span&gt;)&lt;br&gt; &amp;nbsp; &amp;nbsp;&lt;span style="color:blue;"&gt;Public&lt;/span&gt;&amp;nbsp;NSwarm(80)&amp;nbsp;&lt;span style="color:blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Integer&lt;/span&gt;&lt;br&gt;&lt;br&gt;Και ένα βοηθητικό sub για να βγάζει το πλήθος των αριθμών:&lt;br&gt;&lt;pre style="font-family:Consolas;font-size:13;color:black;background:white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Public&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Sub&lt;/span&gt;&amp;nbsp;SwarmsCount()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;'Counting&amp;nbsp;Swarms&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;For&lt;/span&gt;&amp;nbsp;j&amp;nbsp;=&amp;nbsp;KinoGames.Count&amp;nbsp;-&amp;nbsp;1&amp;nbsp;&lt;span style="color:blue;"&gt;To&lt;/span&gt;&amp;nbsp;0&amp;nbsp;&lt;span style="color:blue;"&gt;Step&lt;/span&gt;&amp;nbsp;-1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;frmMain&lt;/span&gt;.NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(j).N1))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;frmMain&lt;/span&gt;.NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(j).N2))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;frmMain&lt;/span&gt;.NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(j).N3))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;frmMain&lt;/span&gt;.NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(j).N4))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;frmMain&lt;/span&gt;.NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(j).N5))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;frmMain&lt;/span&gt;.NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(j).N6))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;frmMain&lt;/span&gt;.NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(j).N7))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;frmMain&lt;/span&gt;.NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(j).N8))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;frmMain&lt;/span&gt;.NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(j).N9))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;frmMain&lt;/span&gt;.NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(j).N10))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;frmMain&lt;/span&gt;.NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(j).N11))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;frmMain&lt;/span&gt;.NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(j).N12))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;frmMain&lt;/span&gt;.NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(j).N13))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;frmMain&lt;/span&gt;.NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(j).N14))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;frmMain&lt;/span&gt;.NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(j).N15))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;frmMain&lt;/span&gt;.NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(j).N16))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;frmMain&lt;/span&gt;.NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(j).N17))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;frmMain&lt;/span&gt;.NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(j).N18))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;frmMain&lt;/span&gt;.NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(j).N19))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;frmMain&lt;/span&gt;.NSwarm(&lt;span style="color:blue;"&gt;CInt&lt;/span&gt;(KinoGames.Item(j).N20))&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;'CountSwarms(KinoGames.Item(j).N20)&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Next&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;'/Counting&amp;nbsp;Swarms&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Sub&lt;br&gt;&lt;/span&gt;
&amp;nbsp;----------------------------------------------------------------------&lt;br&gt;Πάμε τώρα στο κύριο πρόβλημα! Σε ένα κουμπί, έχω κάπου τον εξής κώδικα:&lt;br&gt;-----------------------------------------------------------------------&lt;br&gt;&lt;pre style="font-family:Consolas;font-size:13;color:black;background:white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;For&lt;/span&gt;&amp;nbsp;i&amp;nbsp;=&amp;nbsp;txtDirectories.Lines.Length&amp;nbsp;-&amp;nbsp;1&amp;nbsp;&lt;span style="color:blue;"&gt;To&lt;/span&gt;&amp;nbsp;0&amp;nbsp;&lt;span style="color:blue;"&gt;Step&lt;/span&gt;&amp;nbsp;-1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;KinoClass&lt;/span&gt;.LoadNumbers(txtDirectories.Lines(i))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Next&lt;/span&gt;
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Call&lt;/span&gt;&amp;nbsp;SwarmsCount()&amp;nbsp;&lt;span style="color:green;"&gt;'Filling&amp;nbsp;NSwarm(Array)&lt;br&gt;&lt;/span&gt;Έτσι δουλεύει τέλεια, χωρίς κανένα πρόβλημα. Δηλαδή αφού εκτελεστεί ο κώδικας έχει φορτώσει τα νούμερα και αν πατήσω για παράδειγμα msgbox(KinoGames.Count) θα μου βγάλει ένα τεράστιο νούμερο&lt;br&gt;Όπως κι αν πατήσω msgbox(NSwarm(1)) θα μου βγάλει ένα μεγάλο νούμερο επίσης.&lt;br&gt;&lt;span style="color:green;"&gt;&lt;br&gt;Αλλά όπως είπαμε πρέπει να κάνει χιλιάδες πράξεις και κολλάει το UI, οπότε το κάνω σε Async Await, και αλλάζοντάς το σε:&lt;br&gt;&lt;/span&gt;&lt;pre style="font-family:Consolas;font-size:13;color:black;background:white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Await&lt;/span&gt;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;TaskEx&lt;/span&gt;.Run(&lt;span style="color:blue;"&gt;Sub&lt;/span&gt;()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;For&lt;/span&gt;&amp;nbsp;i&amp;nbsp;=&amp;nbsp;txtDirectories.Lines.Length&amp;nbsp;-&amp;nbsp;1&amp;nbsp;&lt;span style="color:blue;"&gt;To&lt;/span&gt;&amp;nbsp;0&amp;nbsp;&lt;span style="color:blue;"&gt;Step&lt;/span&gt;&amp;nbsp;-1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;KinoClass&lt;/span&gt;.LoadNumbers(txtDirectories.Lines(i))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Next&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MsgBox(KinoGames.Count)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Call&lt;/span&gt;&amp;nbsp;SwarmsCount()&amp;nbsp;&lt;span style="color:green;"&gt;'Filling NSwarm(Array)&lt;/span&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color:blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Sub&lt;/span&gt;)

&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MsgBox(KinoGames.Count)&lt;br&gt;Αρχίζουν τα προβλήματα!&lt;br&gt;Ενώ δεν μου βγάζει κανένα πρόβλημα, και το messagebox εκει μέσα μου βγάζει τον σωστό αριθμό.. με το που τελειώσει και βγει έξω απο το sub έχουν διαγραφεί τα πάντα!!!!&lt;br&gt;Δηλαδή το ίδιο ακριβώς msgbox που έχω απο κάτω, μου βγάζει τιμή 0!&lt;br&gt;&lt;br&gt;Τι έγινε??? γιατί διαγράφονται όλα στο τέλος του sub?&lt;br&gt;Η μοναδική αλλαγή που έγινε ήταν που προσθέθηκε το &lt;span style="color:blue;"&gt;Await&lt;/span&gt;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;TaskEx&lt;/span&gt;.Run(&lt;span style="color:blue;"&gt;Sub&lt;/span&gt;()&lt;br&gt;
&lt;br&gt;Δεν άλλαξα τίποτα άλλο σε καμιά άλλη μεριά. &lt;br&gt;Παρακαλώ βοηθήστε με.&lt;/pre&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/pre&gt;</description></item></channel></rss>