עדכונים שוטפים מהפורום - קוד פתוח
-
לא הבנתי מה הכוונה "טווח זמן לקבל את הקוד".. בכל פתיחה של סוקט מינימלי פשוט מעבירים בפרמטר לפונקציה כמה שניות אתה מוכן לתת ל-Timeout וזהו.. אתה לא אמור לעשות את זה מחוץ לפונקציה.. אלא רק לחכות לקבל מהשרת וזהו.
תראה זה שאלה שלישית שלך על הקוד, תירגע...
דבר ראשון זה לא ממש timeout. timeout של סוקט אני סבור שזה הזמן שבין בקשה לתשובה, ואילו במקרה הורדת קובץ יכול להיות שיש תשובה מהירה אבל זה קובץ גדול, ואז זה ממומש בזרם (stream), שזה בקשות קטנות (אני חושב, לא יודע איך כתבו את המחלקה של webclient). גם במקרה כזה בקוד של רחמים ההורדה תיקטע עקב איטיותה.דבר שני, אפשר לעשות timeout כשאתה פותח סוקט אבל פה הוא לא פתח כלום אלא השתמש במחלקה קיימת.
בשביל לשנות את הtimeout שלה חייבים לרשת ממנה ולהתאים זאת.פורסם במקור בפורום CODE613 ב13/02/2014 18:33 (+02:00)
-
אני יעצור פה עם ה"שאלות"..
יש פרוייקט מאוד מומלץ.. ואני מאוד מרוצה ממנו, עושה עבודה ממש טובה.. אז הנה השיתוף: http://www.feednotifier.com/אתם תהנו
פורסם במקור בפורום CODE613 ב13/02/2014 18:39 (+02:00)
-
קצת שיפצתי את הקוד שלי על פי הקוד של דוד:
- בקריאת ה XML
- בדיקה על פי תאריך אחרון
- הרווחנו בקוד הזה שגם אם תוכנת נתיב סגורה זה לא מפריע לקרא את ה RSS
שימו לב!
יש להגדיר את ה Interval של הטיימר ל 60 שניות לפחות.Private ns As XNamespace = "http://www.w3.org/2005/Atom" Private lastDate As Date = Date.MinValue Private xmlDoc As XDocument Private href As String Private Sub Timer2_Tick(sender As System.Object, e As System.EventArgs) Handles Timer2.Tick Try Dim DownloadThread = New Threading.Thread(Sub() Try xmlDoc = XDocument.Load("http://code.613m.org/feed.php") Catch ex As Exception End Try End Sub) DownloadThread.Start() 'מנסה להוריד נתונים עד 10 שניות For I = 0 To 10 Threading.Thread.Sleep(1000) If DownloadThread.IsAlive = False Then Exit For End If Next 'יוצא אם עד אחר 10 שניות לא הצלח להוריד If DownloadThread.IsAlive Then DownloadThread.Abort() Exit Sub End If Dim XEl As XElement = xmlDoc.Element(ns + "feed").Elements(ns + "entry")(0) If Date.Parse(XEl.Element(ns + "published").Value) > lastDate Then lastDate = Now Dim sb As New StringBuilder sb.AppendLine("המחבר: " & XEl.Element(ns + "author").Value) sb.AppendLine("נושא: " & XEl.Element(ns + "title").Value) sb.AppendLine("תוכן ההודעה: " & XEl.Element(ns + "content").Value) href = XEl.Element(ns + "link").Attributes("href")(0).Value sb.AppendLine("לחץ כאן למעבר להודעה החדשה") NotifyIcon1.ShowBalloonTip(5555, "הודעה חדשה בפורום", sb.ToString, ToolTipIcon.Info) End If Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation + MsgBoxStyle.MsgBoxRight + MsgBoxStyle.MsgBoxRtlReading) End Try End Sub Private Sub NotifyIcon1_BalloonTipClicked(sender As Object, e As System.EventArgs) Handles NotifyIcon1.BalloonTipClicked Try Process.Start(href) Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation + MsgBoxStyle.MsgBoxRight + MsgBoxStyle.MsgBoxRtlReading) End Try End Sub
פורסם במקור בפורום CODE613 ב14/02/2014 13:40 (+02:00)
-
@דוד ל.ט.
רחמים, טיימר וטריד, זה כפל.אחד מהם מיותר.
לא הבנתי אותך, תפקיד הטיימר זה להפעיל את הבדיקה כל X זמן, אני הגדרתי על דקה.
ותפקיד הטריד זה לבצע את ההורדה של ה RSS בלא זה יחסום את הממשק.צודק זו טעות שלי, החלפתי את הטיימר של טריידינג עם הטיימר הזה.
(אכן לכאורה יותר מתאים להחליף אותו בטיימר של טריידינג).
אם אתה משתמש בקוד שלי אתה לא צריך בכלל טיימר משלך, הטיימר כלול בפנים, ושים לב שאין שום טריד.עריכה:
כעת שמתי לב שאני משתמש בדיוק באותו הטיימר שלך,
וזה אומר שאני כן תוקע את התצוגה בעת הורדה.
אעדכן זאת בהמשך עם טיימר של טריידינג.פורסם במקור בפורום CODE613 ב16/02/2014 10:52 (+02:00)
-
אני חושב שכדאי לנעוץ את האשכול הזה [אולי אחרי קצת עריכה] כדי שכל חברי הפורום יהיו מעודכנים וכך הפורום ישגשג יותר ויותר בע''ה.
אני חושב זה אשכול נחמד לצרכי לימוד.
כי בשביל קראת rss יש תוכנות מעולות כבר בשוק, לא?
לדוגמה מה שלKingYes העלה.פורסם במקור בפורום CODE613 ב16/02/2014 11:15 (+02:00)
-
מי שרוצה להתעדכן מכמה RSS אז יקח את התוסף שיקיר הציע אבל אם זה רק בשביל הפורום שלנו אז כמה שורות קוד עדיפות על פני 7 מגה התקנה.
אפשר לעשות קצת עריכה לאשכול ולשים את כל הפתרונות בראש האשכול, והבוחר יבחר.
העיקר לקדם את הפורוםפורסם במקור בפורום CODE613 ב16/02/2014 11:23 (+02:00)