EventScheduler

dorkatz

New member
EventScheduler

שלום ובוקר טוב לכולם רקע: תרגום קוד עובד ב-C# ל-vb.net כרגע יש לי בעיה עם שורת קוד מסוימת שאני לא מצליחה לכתוב אותה ב-vb (התעלמתי ממנה אבל יש לי בעיות בקוד)
C# code public delegate void SchedulerEventDelegate(SchedulerEventType type, string scheduleName); static public event SchedulerEventDelegate OnSchedulerEvent; if (OnSchedulerEvent != null) Vb.net code Public Delegate Sub SchedulerEventDelegate(ByVal type As SchedulerEventType, ByVal StrScheduleName As String) Public Shared Event OnSchedulerEvent As SchedulerEventDelegate​
אני לא מצליחה לתרגם את השורה
if (OnSchedulerEvent != null)​
אם מישהו יכול לעזור לי ואשמח להסבר קצר .
 

dorkatz

New member
לא עובד

ניסיתי לא עובד ההערה
Public Shared Event OnSchedulerEvent(type As SchedulerEventType, StrScheduleName As String)' is an event, and cannot be called directly. Use a 'RaiseEvent' statement to raise an event.​
ניסיתי עם raise event וזה לא עובד אני מנסה לחפש באינטרנט אבל אין לי מושג על מה בכלל
 

dorkatz

New member
המון תודה

המון תודה אבל זה לא עובד גם אבל גם הקוד אומר אם זה לא null ו if not OnSchedulerEvent זה בודק אם OnSchedulerEvent הוא null בכל מקרה הבעיה היא בהגדרת ה-OnSchedulerEvent כי הקומפיילר טוען 'Public Shared Event OnSchedulerEvent(type As SchedulerEventType, StrScheduleName As String)' is an event, and cannot be called directly. Use a 'RaiseEvent' statement to raise an event.
 

24sharon

New member
ובVBFORUM

ענו
Public Delegate Sub SchedulerEventDelegate(ByVal type As SchedulerEventType, ByVal scheduleName As String) Public Shared Event OnSchedulerEvent As SchedulerEventDelegate If Not OnSchedulerEvent Is Nothing Then​
והמליצו על http://tangiblesoftwaresolutions.com/ בהצלחה
 

dorkatz

New member
ניסיתי

זה השורה שמתבצעת לי אבל בקוד ב-c# היא לא מתבצעת בהרצות של האוביקט interval ו-one time ובגלל זה אני חושדת שזה מה שגורם לתוכנית שלי ב-vb לא לרוץ טוב אין לי את הבדיקה הזאת שאם ה-OnSchedulerEvent לא שווה ל-null ואני לא יודעת כי מה שsharon24 כתבה זה הקוד המקורי שלי אבל אז הוא טוען שזה event שאי אפשר לקרוא לו ישירות. טוב אני מקוה שהבנתם אם לא הבעיות יהוה שם גם מחר ואני אנסה למקד אותם
 

yairov

New member
הקוד המלא

Imports System.Windows.Forms Imports System.ComponentModel Imports EventScheduler Public Class Form1 Inherits System.Windows.Forms.Form Private Sub OnClose(ByVal sender As Object, ByVal e As EventArgs) MyBase.Close() End Sub Private Sub ScheduleCallBack(ByVal scheduleName As String) MessageBox.Show(("ScheduleCallBack called from " & scheduleName & " @ " & DateTime.Now.ToLongTimeString)) End Sub Private Sub ShowSchedules(ByVal sender As Object, ByVal e As EventArgs) SchedulerUI.ShowSchedules() End Sub Private Sub Test(ByVal sender As Object, ByVal e As EventArgs) MessageBox.Show("Test will now create all types of schedules and opens Schedules View") Dim schedule1 As Schedule = New IntervalSchedule("Test_Interval", DateTime.Now.AddMinutes(1), 45, TimeSpan.Zero, New TimeSpan(864000000000)) AddHandler schedule1.OnTrigger, New Invoke(AddressOf Me.ScheduleCallBack) Scheduler.AddSchedule(schedule1) schedule1 = New OneTimeSchedule("Test_Onetime", DateTime.Now.AddMinutes(1.5)) AddHandler schedule1.OnTrigger, New Invoke(AddressOf Me.ScheduleCallBack) Scheduler.AddSchedule(schedule1) schedule1 = New DailySchedule("Test_daily", DateTime.Now.AddMinutes(2)) AddHandler schedule1.OnTrigger, New Invoke(AddressOf Me.ScheduleCallBack) Scheduler.AddSchedule(schedule1) schedule1 = New WeeklySchedule("Test_weekly", DateTime.Now.AddMinutes(2.5)) AddHandler schedule1.OnTrigger, New Invoke(AddressOf Me.ScheduleCallBack) Scheduler.AddSchedule(schedule1) schedule1 = New MonthlySchedule("Test_monthly", DateTime.Now.AddMinutes(3)) AddHandler schedule1.OnTrigger, New Invoke(AddressOf Me.ScheduleCallBack) Scheduler.AddSchedule(schedule1) SchedulerUI.ShowSchedules() End Sub Public Sub New() Me.components = Nothing Me.InitializeComponent() End Sub Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub Private components As System.ComponentModel.IContainer Friend WithEvents TestBtn As System.Windows.Forms.Button Friend WithEvents CloseBtn As System.Windows.Forms.Button Friend WithEvents button1 As System.Windows.Forms.Button <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() Me.button1 = New Button Me.CloseBtn = New Button Me.TestBtn = New Button MyBase.SuspendLayout() Me.button1.Location = New Point(25, 8) Me.button1.Name = "button1" Me.button1.Size = New Size(168, 24) Me.button1.TabIndex = 0 Me.button1.Text = "Show Scheduler" AddHandler Me.button1.Click, New EventHandler(AddressOf Me.ShowSchedules) Me.CloseBtn.Location = New Point(53, 78) Me.CloseBtn.Name = "CloseBtn" Me.CloseBtn.Size = New Size(112, 22) Me.CloseBtn.TabIndex = 2 Me.CloseBtn.Text = "Close" AddHandler Me.CloseBtn.Click, New EventHandler(AddressOf Me.OnClose) Me.TestBtn.Location = New Point(25, 42) Me.TestBtn.Name = "TestBtn" Me.TestBtn.Size = New Size(168, 22) Me.TestBtn.TabIndex = 11 Me.TestBtn.Text = "Test Code" AddHandler Me.TestBtn.Click, New EventHandler(AddressOf Me.Test) Me.AutoScaleBaseSize = New Size(5, 13) MyBase.ClientSize = New Size(218, 109) MyBase.Controls.Add(Me.TestBtn) MyBase.Controls.Add(Me.CloseBtn) MyBase.Controls.Add(Me.button1) MyBase.Name = "SchedulerTest" Me.Text = "Testing Scheduler" MyBase.ResumeLayout(False) End Sub End Class​
 

dorkatz

New member
המון המון תודה

הגעתי ראיתי, אחרי שעזבתי אתמול את העבודה בדמעות וכבר אמרתי שאני לתכנות לא מתקרבת אז קצת נתתם לי תיקוה. תודה רבה על הכל (טוב עכשיו צריך לשלב את הקוד)
 

dorkatz

New member
אני מיואשת

הקוד לא רץ לי כמו שצריך כל ( schedule (interval,oneTime,daily בפני עצמו רץ כמו שצריך אבל שאני מנסה להריץ את כולם אז משהו משתבש. עברתי להרצה של ה-interval וה-one time ואז שנהים קופצים ביחד בזמן של האחרון ואז ה-interval ממשיך לרוץ איפה אני מוצאת את הזמן של הקפיצה ? (אני בטוחה שזה ב-start time) וה-start time מקבל (1)DateTime.Now.AddMinutes (1.5 )DateTime.Now.AddMinutes אז למה זה רץ ככה ושניהם נקראים אחרי 1.5?
 

dorkatz

New member
טוב נכון לעכשיו הכל עובד

אז למי שזה מעניין אותו ועקב קצת אז בקשר למה ששאלתי על המרת המשפט לא היה צורך לעשות את זה כי ב-vb הוא בודק לבד. הבעיה הקוד היתה בגלל ה-compareה-sort לא עבד כמו שצריך והיתה טעות והוא עשה השוואה לפי הבילד אין של התוכנה כאשר אני הייתי צריכה לעשות פונקציה שתעשה לי השוואה לפי הזמנים
 

ציפי81

New member
בתכנות תמיד יש את הימים הקשים האלה

ואפילו אם את ממש מתחילה, אל תתייאשי. א. גם אחרי שלושים שנות תכנות אנשים עדיין נתקלים בבעיות שכשהן נפתרות הם לא מבינים למה הם בזבזו עליהן כל כך הרבה זמן. ב. אחרי תקופה קשה מגיעה תקופה טובה שבה את יכולה לצחוק על כל הקשיים שלך... בהצלחה!!!
 

dorkatz

New member
המון המון תודה

המון המון תודה לכולם במיוחד למנהל הפורום שעזרו לי לעבור את המשימה בהצלחה. החשש הגדול מתחילת עבודה במקום חדש + חוסר ניסיון בנושא + מרחק רב מזמן הלימודים גרמו לכמה ימי בכי אבל בזכות העזרה פה לא רק שלא נשברתי זה ממש עודד אותי . אז שוב המון תודה ומקווה שביום מן הימים אני אוכל להיות מהצד השני של פרות ההודעה. דורית
 
למעלה